summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--doc/coding-conventions.xml27
-rw-r--r--nixos/modules/installer/cd-dvd/sd-image-aarch64.nix12
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix7
-rw-r--r--pkgs/applications/video/kodi/default.nix222
-rw-r--r--pkgs/data/icons/numix-icon-theme/default.nix6
-rw-r--r--pkgs/desktops/plasma-5/breeze-plymouth/default.nix35
-rw-r--r--pkgs/development/compilers/dtc/default.nix27
-rw-r--r--pkgs/misc/uboot/default.nix29
-rw-r--r--pkgs/servers/mattermost/default.nix6
9 files changed, 257 insertions, 114 deletions
diff --git a/doc/coding-conventions.xml b/doc/coding-conventions.xml
index 0776e70f14e1..765fc56c3bb3 100644
--- a/doc/coding-conventions.xml
+++ b/doc/coding-conventions.xml
@@ -661,8 +661,6 @@ src = fetchFromGitHub {
 </section>
 
 <section xml:id="sec-patches"><title>Patches</title>
-  <para>Only patches that are unique to <literal>nixpkgs</literal> should be
-    included in <literal>nixpkgs</literal> source.</para>
   <para>Patches available online should be retrieved using
     <literal>fetchpatch</literal>.</para>
   <para>
@@ -676,5 +674,30 @@ patches = [
 ];
 </programlisting>
   </para>
+  <para>Otherwise, you can add a <literal>.patch</literal> file to the
+  <literal>nixpkgs</literal> repository. In the interest of keeping our
+  maintenance burden to a minimum, only patches that are unique
+  to <literal>nixpkgs</literal> should be added in this way.</para>
+<para><programlisting>
+patches = [ ./0001-changes.patch ];
+</programlisting></para>
+  <para>If you do need to do create this sort of patch file,
+  one way to do so is with git:
+  <orderedlist>
+    <listitem><para>Move to the root directory of the source code
+    you're patching.<screen>
+$ cd the/program/source</screen></para></listitem>
+    <listitem><para>If a git repository is not already present,
+    create one and stage all of the source files.<screen>
+$ git init
+$ git add .</screen></para></listitem>
+    <listitem><para>Edit some files to make whatever changes need
+    to be included in the patch.</para></listitem>
+    <listitem><para>Use git to create a diff, and pipe the output
+    to a patch file:<screen>
+$ git diff > nixpkgs/pkgs/the/package/0001-changes.patch</screen>
+    </para></listitem>
+  </orderedlist></para>
 </section>
+
 </chapter>
diff --git a/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix b/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
index c94dc7d40194..efb9ba39bcd4 100644
--- a/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
+++ b/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
@@ -40,16 +40,6 @@ in
 
   sdImage = {
     populateBootCommands = let
-      # Contains a couple of fixes for booting a Linux kernel, will hopefully appear upstream soon.
-      patchedUboot = pkgs.ubootRaspberryPi3_64bit.overrideAttrs (oldAttrs: {
-        src = pkgs.fetchFromGitHub {
-          owner = "dezgeg";
-          repo = "u-boot";
-          rev = "baab53ec244fe44def01948a0f10e67342d401e6";
-          sha256 = "0r5j2pc42ws3w3im0a9c6bh01czz5kapqrqp0ik9ra823cw73lxr";
-        };
-      });
-
       configTxt = pkgs.writeText "config.txt" ''
         kernel=u-boot-rpi3.bin
         arm_control=0x200
@@ -57,7 +47,7 @@ in
       '';
       in ''
         (cd ${pkgs.raspberrypifw}/share/raspberrypi/boot && cp bootcode.bin fixup*.dat start*.elf $NIX_BUILD_TOP/boot/)
-        cp ${patchedUboot}/u-boot.bin boot/u-boot-rpi3.bin
+        cp ${pkgs.ubootRaspberryPi3_64bit}/u-boot.bin boot/u-boot-rpi3.bin
         cp ${configTxt} boot/config.txt
         ${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./boot
       '';
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 7f54bb182fe9..bb4f4e868fea 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -195,7 +195,12 @@ in
 
       boot.plymouth = {
         theme = mkDefault "breeze";
-        themePackages = mkDefault [ pkgs.breeze-plymouth ];
+        themePackages = mkDefault [
+          (pkgs.breeze-plymouth.override {
+            nixosBranding = true;
+            nixosVersion = config.system.nixosRelease;
+          })
+        ];
       };
 
       security.pam.services.kde = { allowNullPassword = true; };
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index 5a64c36abe4f..da90f681f7a8 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -1,6 +1,7 @@
-{ stdenv, lib, fetchurl, makeWrapper
+{ stdenv, lib, fetchFromGitHub, fetchurl, autoconf, automake, libtool, makeWrapper
 , pkgconfig, cmake, gnumake, yasm, python2
-, boost, avahi, libdvdcss, libdvdnav, libdvdread, lame, autoreconfHook
+, libgcrypt, libgpgerror, libunistring
+, boost, avahi, lame, autoreconfHook
 , gettext, pcre-cpp, yajl, fribidi, which
 , openssl, gperf, tinyxml2, taglib, libssh, swig, jre
 , libX11, xproto, inputproto, libxml2
@@ -16,133 +17,194 @@
 , sqlite, mysql, nasm, gnutls, libva, wayland
 , curl, bzip2, zip, unzip, glxinfo, xdpyinfo
 , libcec, libcec_platform, dcadec, libuuid
-, libcrossguid
-, dbus_libs ? null, dbusSupport ? true
-, udev, udevSupport ? true
-, libusb ? null, usbSupport ? false
-, samba ? null, sambaSupport ? true
-, libmicrohttpd, bash
-# TODO: would be nice to have nfsSupport (needs libnfs library)
-, rtmpdump ? null, rtmpSupport ? true
-, libvdpau ? null, vdpauSupport ? true
-, libpulseaudio ? null, pulseSupport ? true
-, joystickSupport ? true
+, libcrossguid, libmicrohttpd
+, bluez, doxygen, giflib, glib, harfbuzz, lcms2, libidn, libpthreadstubs, libtasn1, libXdmcp
+, libplist, p11_kit, zlib
+, dbusSupport ? true, dbus_libs ? null
+, joystickSupport ? true, cwiid ? null
+, nfsSupport ? true, libnfs ? null
+, pulseSupport ? true, libpulseaudio ? null
+, rtmpSupport ? true, rtmpdump ? null
+, sambaSupport ? true, samba ? null
+, udevSupport ? true, udev ? null
+, usbSupport  ? false, libusb ? null
+, vdpauSupport ? true, libvdpau ? null
 }:
 
 assert dbusSupport  -> dbus_libs != null;
+assert nfsSupport   -> libnfs != null;
+assert pulseSupport -> libpulseaudio != null;
+assert rtmpSupport  -> rtmpdump != null;
+assert sambaSupport -> samba != null;
 assert udevSupport  -> udev != null;
 assert usbSupport   -> libusb != null && ! udevSupport; # libusb won't be used if udev is avaliable
-assert sambaSupport -> samba != null;
 assert vdpauSupport -> libvdpau != null;
-assert pulseSupport -> libpulseaudio != null;
-assert rtmpSupport  -> rtmpdump != null;
+
+# TODO for Kodi 18.0
+# - cmake is no longer in project/cmake
+# - maybe we can remove auto{conf,make} and libtool from inputs
+# - check if dbus support PR has been merged and add dbus as a buildInput
 
 let
-  kodi_version = "17.4";
+  kodiReleaseDate = "20171115";
+  kodiVersion = "17.6";
   rel = "Krypton";
-  ffmpeg_3_1_9 = fetchurl {
-    url = "https://github.com/xbmc/FFmpeg/archive/3.1.9-${rel}-${kodi_version}.tar.gz";
-    sha256 = "0rhjz505ljfg2jqbm3rd7qbcjq4vnp8h9a8vad8rjf84v3alglpa";
+
+  kodi_src = fetchFromGitHub {
+    owner  = "xbmc";
+    repo   = "xbmc";
+    rev    = "${kodiVersion}-${rel}";
+    sha256 = "1pwmmbry7dajwdpmc1mdygjvxna4kl38h32d71g10yf3mdm5wmz3";
   };
-  # Usage of kodi fork of libdvdnav and libdvdread is necessary for functional dvd playback:
-  libdvdnav_src = fetchurl {
-    url = "https://github.com/xbmc/libdvdnav/archive/981488f.tar.gz";
-    sha256 = "312b3d15bc448d24e92f4b2e7248409525eccc4e75776026d805478e51c5ef3d";
+
+  kodiDependency = { name, version, rev, sha256, ... } @attrs:
+    let
+      attrs' = builtins.removeAttrs attrs ["name" "version" "rev" "sha256"];
+    in stdenv.mkDerivation ({
+      name = "kodi-${lib.toLower name}-${version}";
+      src = fetchFromGitHub {
+        owner = "xbmc";
+        repo  = name;
+        inherit rev sha256;
+      };
+      enableParallelBuilding = true;
+    } // attrs');
+
+  ffmpeg = kodiDependency rec {
+    name    = "FFmpeg";
+    version = "3.1.11";
+    rev     = "${version}-${rel}-17.5"; # TODO: change 17.5 back to ${kodiVersion}
+    sha256  = "0nc4sb6v1g3l11v9h5l9n44a8r40186rcbp2xg5c7vg6wcpjid13";
+    preConfigure = ''
+      cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
+    '';
+    buildInputs = [ gnutls libidn libtasn1 p11_kit zlib ];
+    nativeBuildInputs = [ cmake nasm pkgconfig ];
   };
-  libdvdread_src = fetchurl {
-    url = "https://github.com/xbmc/libdvdread/archive/17d99db.tar.gz";
-    sha256 = "e7179b2054163652596a56301c9f025515cb08c6d6310b42b897c3ad11c0199b";
+
+  # we should be able to build these externally and have kodi reference them as buildInputs.
+  # Doesn't work ATM though so we just use them for the src
+
+  libdvdcss = kodiDependency {
+    name              = "libdvdcss";
+    version           = "20160215";
+    rev               = "2f12236bc1c92f73c21e973363f79eb300de603f";
+    sha256            = "198r0q73i55ga1dvyqq9nfcri0zq08b94hy8671lg14i3izx44dd";
+    buildInputs       = [ libdvdread ];
+    nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  };
+
+  libdvdnav = kodiDependency {
+    name              = "libdvdnav";
+    version           = "20170217";
+    rev               = "981488f7f27554b103cca10c1fbeba027396c94a";
+    sha256            = "089pswc51l3avh95zl4cpsh7gh1innh7b2y4xgx840mcmy46ycr8";
+    buildInputs       = [ libdvdread ];
+    nativeBuildInputs = [ autoreconfHook pkgconfig ];
   };
+
+  libdvdread = kodiDependency {
+    name              = "libdvdread";
+    version           = "20160221";
+    rev               = "17d99db97e7b8f23077b342369d3c22a6250affd";
+    sha256            = "1gr5aq1cjr3as9mnwrw29cxn4m6f6pfrxdahkdcjy70q3ldg90sl";
+    nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  };
+
 in stdenv.mkDerivation rec {
-    version = kodi_version;
-    name = "kodi-${version}";
+    name = "kodi-${kodiVersion}";
 
-    src = fetchurl {
-      url = "https://github.com/xbmc/xbmc/archive/${version}-${rel}.tar.gz";
-      sha256 = "1p1lxkapynjbd85ns7m4jybl4k35kxzv7105xkh03hlz8kkqc23b";
-    };
+    src = kodi_src;
 
     buildInputs = [
-      libxml2 gnutls yasm python2
+      gnutls libidn libtasn1 nasm p11_kit
+      libxml2 yasm python2
       boost libmicrohttpd
       gettext pcre-cpp yajl fribidi libva
       openssl gperf tinyxml2 taglib libssh swig jre
-      libX11 xproto inputproto which
-      libXt libXmu libXext xextproto
-      libXinerama libXrandr randrproto
-      libXtst libXfixes fixesproto
+      libX11 xproto inputproto libXt libXmu libXext xextproto
+      libXinerama libXrandr randrproto libXtst libXfixes fixesproto
       SDL SDL_image SDL_mixer alsaLib
       mesa glew fontconfig freetype ftgl
-      libjpeg jasper libpng libtiff wayland
+      libjpeg jasper libpng libtiff libva wayland
       libmpeg2 libsamplerate libmad
       libogg libvorbis flac libxslt systemd
       lzo libcdio libmodplug libass libbluray
-      sqlite mysql.lib nasm avahi libdvdcss lame
+      sqlite mysql.lib avahi lame
       curl bzip2 zip unzip glxinfo xdpyinfo
       libcec libcec_platform dcadec libuuid
-      libcrossguid
+      libgcrypt libgpgerror libunistring
+      libcrossguid cwiid libplist
+      bluez giflib glib harfbuzz lcms2 libpthreadstubs libXdmcp
+      ffmpeg
+      # libdvdcss libdvdnav libdvdread
     ]
-    ++ lib.optional dbusSupport dbus_libs
-    ++ lib.optional udevSupport udev
-    ++ lib.optional usbSupport libusb
-    ++ lib.optional sambaSupport samba
-    ++ lib.optional vdpauSupport libvdpau
-    ++ lib.optional pulseSupport libpulseaudio
-    ++ lib.optional rtmpSupport rtmpdump
-    ++ lib.optional joystickSupport SDL2;
+    ++ lib.optional  dbusSupport     dbus_libs
+    ++ lib.optionals joystickSupport [ cwiid SDL2 ]
+    ++ lib.optional  nfsSupport      libnfs
+    ++ lib.optional  pulseSupport    libpulseaudio
+    ++ lib.optional  rtmpSupport     rtmpdump
+    ++ lib.optional  sambaSupport    samba
+    ++ lib.optional  udevSupport     udev
+    ++ lib.optional  usbSupport      libusb
+    ++ lib.optional  vdpauSupport    libvdpau;
 
     nativeBuildInputs = [
-      autoreconfHook cmake gnumake makeWrapper pkgconfig
+      cmake
+      doxygen
+      makeWrapper
+      which
+      pkgconfig gnumake
+      autoconf automake libtool # still needed for some components. Check if that is the case with 18.0
     ];
 
-    dontUseCmakeConfigure = true;
+    cmakeFlags = [
+      "-Dlibdvdcss_URL=${libdvdcss.src}"
+      "-Dlibdvdnav_URL=${libdvdnav.src}"
+      "-Dlibdvdread_URL=${libdvdread.src}"
+      "-DGIT_VERSION=${kodiReleaseDate}"
+      "-DENABLE_EVENTCLIENTS=ON"
+      "-DENABLE_INTERNAL_CROSSGUID=OFF"
+      "-DENABLE_OPTICAL=ON"
+      "-DLIRC_DEVICE=/run/lirc/lircd"
+    ];
+
+    enableParallelBuilding = true;
+
+    # 14 tests fail but the biggest issue is that every test takes 30 seconds -
+    # I'm guessing there is a thing waiting to time out
+    doCheck = false;
 
     postPatch = ''
       substituteInPlace xbmc/linux/LinuxTimezone.cpp \
         --replace 'usr/share/zoneinfo' 'etc/zoneinfo'
-      substituteInPlace tools/depends/target/ffmpeg/autobuild.sh \
-        --replace "/bin/bash" "${bash}/bin/bash -ex"
-      cp ${ffmpeg_3_1_9} tools/depends/target/ffmpeg/ffmpeg-3.1.9-${rel}-${version}.tar.gz
-      ln -s ${libdvdcss.src} tools/depends/target/libdvdcss/libdvdcss-master.tar.gz
-      cp ${libdvdnav_src} tools/depends/target/libdvdnav/libdvdnav-master.tar.gz
-      cp ${libdvdread_src} tools/depends/target/libdvdread/libdvdread-master.tar.gz
     '';
 
     preConfigure = ''
-      patchShebangs .
-      ./bootstrap
-      # tests here fail
-      sed -i '/TestSystemInfo.cpp/d' xbmc/utils/test/{Makefile,CMakeLists.txt}
-      # tests here trigger a segfault in kodi.bin
-      sed -i '/TestWebServer.cpp/d'  xbmc/network/test/{Makefile,CMakeLists.txt}
+      cd project/cmake
     '';
 
-    enableParallelBuilding = true;
-
-    doCheck = true;
-
-    configureFlags = [ "--enable-libcec" ]
-    ++ lib.optional (!sambaSupport) "--disable-samba"
-    ++ lib.optional vdpauSupport "--enable-vdpau"
-    ++ lib.optional pulseSupport "--enable-pulse"
-    ++ lib.optional rtmpSupport "--enable-rtmp"
-    ++ lib.optional joystickSupport "--enable-joystick";
-
     postInstall = ''
       for p in $(ls $out/bin/) ; do
         wrapProgram $out/bin/$p \
-          --prefix PATH ":" "${lib.makeBinPath
-              [ python2 glxinfo xdpyinfo ]}" \
+          --prefix PATH            ":" "${lib.makeBinPath [ python2 glxinfo xdpyinfo ]}" \
           --prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
               [ curl systemd libmad libvdpau libcec libcec_platform rtmpdump libass SDL2 ]}"
       done
+
+      substituteInPlace $out/share/xsessions/kodi.desktop \
+        --replace kodi-standalone $out/bin/kodi-standalone
     '';
 
+    doInstallCheck = true;
+
+    installCheckPhase = "$out/bin/kodi --version";
+
     meta = with stdenv.lib; {
-      homepage = https://kodi.tv/;
       description = "Media center";
-      license = licenses.gpl2;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ domenkozar titanous edwtjo ];
+      homepage    = https://kodi.tv/;
+      license     = licenses.gpl2;
+      platforms   = platforms.linux;
+      maintainers = with maintainers; [ domenkozar titanous edwtjo peterhoeg ];
     };
 }
diff --git a/pkgs/data/icons/numix-icon-theme/default.nix b/pkgs/data/icons/numix-icon-theme/default.nix
index c767675e90ec..a7c6c4908972 100644
--- a/pkgs/data/icons/numix-icon-theme/default.nix
+++ b/pkgs/data/icons/numix-icon-theme/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "2017-09-17";
+  version = "2017-11-18";
 
   package-name = "numix-icon-theme";
 
@@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = package-name;
-    rev = "d0e7da93520e521bf7df7cffa3620c10a8400a7f";
-    sha256 = "1my43kv9yz9vdn51zhd13c8zavba17cqrmxkmhpx0c8xldjqfp3i";
+    rev = "ea7f2069ca1f6190494e96aa2febcadf6248c5b4";
+    sha256 = "1nk0mc2qycwmjqdlrsfgar5m83pyj3hf6f66pywf9706nn2yz8fv";
   };
 
   dontBuild = true;
diff --git a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
index 41a4dd66b2c8..48b038325fec 100644
--- a/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
+++ b/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
@@ -1,15 +1,44 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation,
+  lib,
+  copyPathsToStore,
   extra-cmake-modules,
-  plymouth
+  plymouth,
+  nixos-icons,
+  imagemagick,
+  netpbm,
+  perl,
+  # these will typically need to be set via an override
+  # in a NixOS context
+  nixosBranding ? false,
+  nixosName ? "NixOS",
+  nixosVersion ? "",
+  topColor ? "black",
+  bottomColor ? "black"
 }:
 
+let
+  logoName = "nixos";
+in
 mkDerivation {
   name = "breeze-plymouth";
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ plymouth ];
+  buildInputs = [ plymouth ] ++ lib.optionals nixosBranding [ imagemagick netpbm perl ];
   patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  cmakeFlags = lib.optionals nixosBranding [
+    "-DDISTRO_NAME=${nixosName}"
+    "-DDISTRO_VERSION=${nixosVersion}"
+    "-DDISTRO_LOGO=${logoName}"
+    "-DBACKGROUND_TOP_COLOR=${topColor}"
+    "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}"
+  ];
   postPatch = ''
       substituteInPlace cmake/FindPlymouth.cmake --subst-var out
+  '' + lib.optionalString nixosBranding ''
+      cp ${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png breeze/images/${logoName}.logo.png
+
+      # conversion for 16bit taken from the breeze-plymouth readme
+      convert ${nixos-icons}/share/icons/hicolor/128x128/apps/nix-snowflake.png -alpha Background -background "#000000" -fill "#000000" -flatten tmp.png
+      pngtopnm tmp.png | pnmquant 16 | pnmtopng > breeze/images/16bit/${logoName}.logo.png
   '';
 }
diff --git a/pkgs/development/compilers/dtc/default.nix b/pkgs/development/compilers/dtc/default.nix
index e8c36dc7a037..fd02f779b3cf 100644
--- a/pkgs/development/compilers/dtc/default.nix
+++ b/pkgs/development/compilers/dtc/default.nix
@@ -1,18 +1,35 @@
-{ stdenv, fetchgit, flex, bison }:
+{ stdenv, fetchgit, fetchpatch, flex, bison, pkgconfig, python2, swig, which }:
 
 stdenv.mkDerivation rec {
   name = "dtc-${version}";
-  version = "1.4.4";
+  version = "1.4.5";
 
   src = fetchgit {
     url = "git://git.kernel.org/pub/scm/utils/dtc/dtc.git";
     rev = "refs/tags/v${version}";
-    sha256 = "1pxp7700b3za7q4fnsnxx6i8v66rnr8p6lyi7jf684y1hq5ynlnf";
+    sha256 = "10y5pbkcj5gkijcgnlvrh6q2prpnvsgihb9asz3zfp66mcjwzsy3";
   };
 
-  nativeBuildInputs = [ flex bison ];
+  nativeBuildInputs = [ flex bison pkgconfig swig which ];
+  buildInputs = [ python2 ];
 
-  installFlags = [ "INSTALL=install" "PREFIX=$(out)" ];
+  patches = [
+    # Fix 32-bit build
+    (fetchpatch {
+      url = "https://git.kernel.org/pub/scm/utils/dtc/dtc.git/patch/?id=497432fd2131967f349e69dc5d259072151cc4b4";
+      sha256 = "1hrvhvz0qkck53mhacrc4rxjrvp34d8dkw7xb5lr4gpg32grvkpq";
+    })
+    # Fix setup.py
+    (fetchpatch {
+      url = "https://github.com/dezgeg/dtc/commit/d94a745148ba5c9198143ccc0f7d877fe498ab73.patch";
+      sha256 = "0hpryx04j1swvmjisrfhvss08zzz4nxz9iv72lp4jdgg6vg0argl";
+    })
+  ];
+  postPatch = ''
+    patchShebangs pylibfdt/
+  '';
+
+  installFlags = [ "INSTALL=install" "PREFIX=$(out)" "SETUP_PREFIX=$(out)" ];
 
   meta = with stdenv.lib; {
     description = "Device Tree Compiler";
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index a69bf2ceac7b..1947fd30a401 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, bc, dtc, python2
+{ stdenv, fetchurl, fetchpatch, bc, dtc, python2
 , hostPlatform
 }:
 
@@ -12,21 +12,38 @@ let
            stdenv.mkDerivation (rec {
 
     name = "uboot-${defconfig}-${version}";
-    version = "2017.03";
+    version = "2017.11";
 
     src = fetchurl {
       url = "ftp://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2";
-      sha256 = "0gqihplap05dlpwdb971wsqyv01nz2vabwq5g5649gr5jczsyjzm";
+      sha256 = "01bcsah5imy6m3fbjwhqywxg0pfk5fl8ks9ylb7kv3zmrb9qy0ba";
     };
 
-    nativeBuildInputs = [ bc dtc python2 ];
-
-    hardeningDisable = [ "all" ];
+    patches = [
+      (fetchpatch {
+        url = https://github.com/dezgeg/u-boot/commit/rpi-2017-11-patch1.patch;
+        sha256 = "067yq55vv1slv4xy346px7h329pi14abdn04chg6s1s6hmf6c1x9";
+      })
+      (fetchpatch {
+        url = https://github.com/dezgeg/u-boot/commit/rpi-2017-11-patch2.patch;
+        sha256 = "0bbw0q027xvzvdxxvpzjajg4rm30a8mb7z74b6ma9q0l7y7bi0c4";
+      })
+      (fetchpatch {
+        url = https://github.com/dezgeg/u-boot/commit/pythonpath-2017-11.patch;
+        sha256 = "162b2lglp307pzxsf9m7nnmzwxqd7xkwp5j85bm6bg1a38ngpl9v";
+      })
+    ];
 
     postPatch = ''
       patchShebangs tools
     '';
 
+    nativeBuildInputs = [ bc dtc python2 ];
+
+    hardeningDisable = [ "all" ];
+
+    makeFlags = [ "DTC=dtc" ];
+
     configurePhase = ''
       make ${defconfig}
     '';
diff --git a/pkgs/servers/mattermost/default.nix b/pkgs/servers/mattermost/default.nix
index 5fab7e7b29fe..bf2824688441 100644
--- a/pkgs/servers/mattermost/default.nix
+++ b/pkgs/servers/mattermost/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   name = "mattermost-${version}";
-  version = "4.4.0";
+  version = "4.4.1";
 
   src = fetchFromGitHub {
     owner = "mattermost";
@@ -13,7 +13,7 @@ buildGoPackage rec {
 
   webApp = fetchurl {
     url = "https://releases.mattermost.com/${version}/mattermost-team-${version}-linux-amd64.tar.gz";
-    sha256 = "1ifxx17sm24c6sihg38lzpnb5x24m04bk25nn5hrw9iwc37lfzlp";
+    sha256 = "1gnzv9xkqawi36z7v9xsy1gk16x71qf0kn8r059qvyarjlyp7888";
   };
 
   goPackagePath = "github.com/mattermost/mattermost-server";
@@ -38,7 +38,7 @@ buildGoPackage rec {
     description = "Open-Source, self-hosted Slack-alternative";
     homepage = https://www.mattermost.org;
     license = with licenses; [ agpl3 asl20 ];
-    maintainers = with maintainers; [ fpletz ];
+    maintainers = with maintainers; [ fpletz ryantm ];
     platforms = platforms.unix;
   };
 }