aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2018-04-21 04:57:29 -0400
committerMark H Weaver <mhw@netris.org>2018-04-21 05:02:52 -0400
commitc52872bfc418c6b2273f973dff8003ca9e062792 (patch)
tree4184a250e6d8363b3901aa2abe6910ff08ce08d4 /gnu/packages/patches
parent65bb22796f854cbc3eae053a80b1d64365dad376 (diff)
parent3fe49e50153fec1dabac35e262a0888044f79aa6 (diff)
downloadguix-c52872bfc418c6b2273f973dff8003ca9e062792.tar
guix-c52872bfc418c6b2273f973dff8003ca9e062792.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch205
-rw-r--r--gnu/packages/patches/datamash-arm-tests.patch71
-rw-r--r--gnu/packages/patches/freeimage-unbundle.patch550
-rw-r--r--gnu/packages/patches/htop-fix-process-tree.patch99
-rw-r--r--gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch41
-rw-r--r--gnu/packages/patches/mupen64plus-video-z64-glew-correct-path.patch36
-rw-r--r--gnu/packages/patches/qemu-CVE-2018-7550.patch66
-rw-r--r--gnu/packages/patches/sharutils-CVE-2018-1000097.patch21
8 files changed, 744 insertions, 345 deletions
diff --git a/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch b/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch
deleted file mode 100644
index 7a033df413..0000000000
--- a/gnu/packages/patches/cool-retro-term-remove-non-free-fonts.patch
+++ /dev/null
@@ -1,205 +0,0 @@
-From 96ceffdfdcedd3ae33c46b11357aa2518e0a6152 Mon Sep 17 00:00:00 2001
-From: Petter <petter@mykolab.ch>
-Date: Thu, 27 Apr 2017 18:55:10 +0200
-Subject: [PATCH] Remove non-free fonts from settings menu
-
---- a/app/qml/ApplicationSettings.qml
-+++ b/app/qml/ApplicationSettings.qml
-@@ -409,7 +409,7 @@
- obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"TERMINUS_SCALED","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.16,"jitter":0.18,"burnIn":0.45,"staticNoise":0.1,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
- builtin: true
- }
-- ListElement{
-+ /*ListElement{
- text: "Default Scanlines"
- obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.1,"contrast":0.85,"fontName":"COMMODORE_PET","fontColor":"#00ff5b","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.2,"horizontalSync":0.14,"jitter":0.11,"burnIn":0.4,"staticNoise":0.05,"rasterization":1,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
- builtin: true
-@@ -433,7 +433,7 @@
- text: "IBM Dos"
- obj_string: '{"ambientLight":0.16,"backgroundColor":"#000000","bloom":0.4,"brightness":0.5,"flickering":0.07,"contrast":0.85,"fontName":"IBM_DOS","fontColor":"#ffffff","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0.13,"horizontalSync":0,"jitter":0.16,"burnIn":0.3,"staticNoise":0.03,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":1,"saturationColor":0,"rbgShift":0.35,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
- builtin: true
-- }
-+ }*/
- ListElement{
- text: "IBM 3278"
- obj_string: '{"ambientLight":0.1,"backgroundColor":"#000000","bloom":0.15,"brightness":0.5,"flickering":0,"contrast":0.85,"fontName":"IBM_3278","fontColor":"#0ccc68","frameName":"SIMPLE_WHITE_FRAME","glowingLine":0,"horizontalSync":0,"jitter":0,"burnIn":0.6,"staticNoise":0,"rasterization":0,"screenCurvature":0.1,"windowOpacity":1,"chromaColor":0,"saturationColor":0,"rbgShift":0,"fontWidth":1.0,"useCustomCommand":false,"customCommand":""}'
-diff --git a/app/qml/FontPixels.qml b/app/qml/FontPixels.qml
-index 6ff85da..6f0d0ba 100644
---- a/app/qml/FontPixels.qml
-+++ b/app/qml/FontPixels.qml
-@@ -32,7 +32,7 @@ QtObject{
- property bool lowResolutionFont: true
-
- property ListModel fontlist: ListModel{
-- ListElement{
-+ /*ListElement{
- name: "COMMODORE_PET"
- text: "Commodore PET (1977)"
- source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
-@@ -40,7 +40,7 @@ QtObject{
- pixelSize: 8
- baseScaling: 4.0
- fontWidth: 0.8
-- }
-+ }*/
- ListElement{
- name: "PROGGY_TINY"
- text: "Proggy Tiny (Modern)"
-@@ -68,7 +68,7 @@ QtObject{
- baseScaling: 3.0
- fontWidth: 1.0
- }
-- ListElement{
-+ /*ListElement{
- name: "APPLE_II"
- text: "Apple ][ (1977)"
- source: "fonts/1977-apple2/PrintChar21.ttf"
-@@ -76,8 +76,8 @@ QtObject{
- pixelSize: 8
- baseScaling: 4.0
- fontWidth: 0.9
-- }
-- ListElement{
-+ }*/
-+ /*ListElement{
- name: "ATARI_400"
- text: "Atari 400-800 (1979)"
- source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
-@@ -85,8 +85,8 @@ QtObject{
- pixelSize: 8
- baseScaling: 4.0
- fontWidth: 0.8
-- }
-- ListElement{
-+ }*/
-+ /*ListElement{
- name: "COMMODORE_64"
- text: "Commodore 64 (1982)"
- source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf"
-@@ -94,6 +94,6 @@ QtObject{
- pixelSize: 8
- baseScaling: 4.0
- fontWidth: 0.8
-- }
-+ }*/
- }
- }
-diff --git a/app/qml/FontScanlines.qml b/app/qml/FontScanlines.qml
-index eebf00b..410d7b6 100644
---- a/app/qml/FontScanlines.qml
-+++ b/app/qml/FontScanlines.qml
-@@ -32,7 +32,7 @@ QtObject{
- property bool lowResolutionFont: true
-
- property ListModel fontlist: ListModel{
-- ListElement{
-+ /*ListElement{
- name: "COMMODORE_PET"
- text: "Commodore PET (1977)"
- source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
-@@ -40,7 +40,7 @@ QtObject{
- pixelSize: 8
- baseScaling: 4.0
- fontWidth: 0.7
-- }
-+ }*/
- ListElement{
- name: "PROGGY_TINY"
- text: "Proggy Tiny (Modern)"
-@@ -68,7 +68,7 @@ QtObject{
- baseScaling: 3.0
- fontWidth: 1.0
- }
-- ListElement{
-+ /*ListElement{
- name: "APPLE_II"
- text: "Apple ][ (1977)"
- source: "fonts/1977-apple2/PrintChar21.ttf"
-@@ -76,8 +76,8 @@ QtObject{
- pixelSize: 8
- baseScaling: 4.0
- fontWidth: 0.8
-- }
-- ListElement{
-+ }*/
-+ /*ListElement{
- name: "ATARI_400"
- text: "Atari 400-800 (1979)"
- source: "fonts/1979-atari-400-800/ATARI400800_original.TTF"
-@@ -85,8 +85,8 @@ QtObject{
- pixelSize: 8
- baseScaling: 4.0
- fontWidth: 0.7
-- }
-- ListElement{
-+ }*/
-+ /*ListElement{
- name: "COMMODORE_64"
- text: "Commodore 64 (1982)"
- source: "fonts/1982-commodore64/C64_Pro_Mono_v1.0-STYLE.ttf"
-@@ -94,6 +94,6 @@ QtObject{
- pixelSize: 8
- baseScaling: 4.0
- fontWidth: 0.7
-- }
-+ }*/
- }
- }
-diff --git a/app/qml/Fonts.qml b/app/qml/Fonts.qml
-index ad20844..882808a 100644
---- a/app/qml/Fonts.qml
-+++ b/app/qml/Fonts.qml
-@@ -80,7 +80,7 @@
- fontWidth: 1.0
- lowResolutionFont: true
- }
-- ListElement{
-+ /*ListElement{
- name: "COMMODORE_PET_SCALED"
- text: "Commodore PET (1977)"
- source: "fonts/1977-commodore-pet/COMMODORE_PET.ttf"
-@@ -89,7 +89,7 @@
- baseScaling: 3.5
- fontWidth: 0.7
- lowResolutionFont: true
-- }
-+ }*/
- ListElement{
- name: "PROGGY_TINY_SCALED"
- text: "Proggy Tiny (Modern)"
-@@ -100,7 +100,7 @@
- fontWidth: 0.9
- lowResolutionFont: true
- }
-- ListElement{
-+ /*ListElement{
- name: "APPLE_II_SCALED"
- text: "Apple ][ (1977)"
- source: "fonts/1977-apple2/PrintChar21.ttf"
-@@ -149,7 +149,7 @@
- baseScaling: 2.0
- fontWidth: 1.0
- lowResolutionFont: true
-- }
-+ }*/
- ListElement{
- name: "HERMIT"
- text: "HD: Hermit (Modern)"
-@@ -177,7 +177,7 @@
- fontWidth: 1.0
- lowResolutionFont: false
- }
-- ListElement{
-+ /*ListElement{
- name: "MONACO"
- text: "HD: Monaco (Modern)"
- source: "fonts/modern-monaco/monaco.ttf"
-@@ -185,7 +185,7 @@
- pixelSize: 30
- fontWidth: 1.0
- lowResolutionFont: false
-- }
-+ }*/
- ListElement{
- name: "INCONSOLATA"
- text: "HD: Inconsolata (Modern)"
diff --git a/gnu/packages/patches/datamash-arm-tests.patch b/gnu/packages/patches/datamash-arm-tests.patch
new file mode 100644
index 0000000000..a24c5320ad
--- /dev/null
+++ b/gnu/packages/patches/datamash-arm-tests.patch
@@ -0,0 +1,71 @@
+See https://lists.gnu.org/archive/html/bug-datamash/2018-03/msg00003.html and
+https://lists.gnu.org/archive/html/bug-datamash/2018-03/txt4DmvR7p6J9.txt
+
+From d446dba317aa067440d6312d955d523129949327 Mon Sep 17 00:00:00 2001
+From: Assaf Gordon <address@hidden>
+Date: Thu, 22 Mar 2018 11:00:34 -0600
+Subject: [PATCH 1/2] tests: fix --format='%4000f' expected output
+
+Can be 1.000009... or 1.000008999, depending on representation.
+
+* tests/datamash-output-format.pl: Check only the first 5 digits.
+---
+ tests/datamash-output-format.pl | 9 +++++----
+ 1 file changed, 5 insertions(+), 4 deletions(-)
+
+diff --git a/tests/datamash-output-format.pl b/tests/datamash-output-format.pl
+index 52c68a2..ca99bb0 100755
+--- a/tests/datamash-output-format.pl
++++ b/tests/datamash-output-format.pl
+@@ -98,12 +98,13 @@ my @Tests =
+ {OUT => "0" x 3999 . "1\n"}],
+
+ # due to binary floating representation, some decimal point digits won't be
+- # zero (e.g. 1.0000090000000000000000000000000523453254320000000...).
+- # The OUT_SUBST replaces exactly 3994 digits (as expected from the format)
++ # zero (e.g. 1.0000090000000000000000000000000523453254320000000... or
++ # 1.000008999999...).
++ # The OUT_SUBST replaces exactly 3995 digits (as expected from the format)
+ # with an "X".
+ ['m2', '--format "%.4000f" sum 1', {IN_PIPE=>$in1},
+- {OUT => "1.000009X\n"},
+- {OUT_SUBST => 's/^(1\.000009)([0-9]{3994})$/\1X/'}],
++ {OUT => "1.00000X\n"},
++ {OUT_SUBST => 's/^(1\.00000)([0-9]{3995})$/\1X/'}],
+
+ );
+
+--
+2.7.4
+
+
+From f4871963974a96d6e69cb80b9c2fac7ff0c1d472 Mon Sep 17 00:00:00 2001
+From: Assaf Gordon <address@hidden>
+Date: Thu, 22 Mar 2018 11:18:13 -0600
+Subject: [PATCH 2/2] tests: disable --format="%a" test
+
+Valid output can differ (e.g. 0x8.000p-3 vs 0x1.000p+0).
+
+* tests/datamash-output-format.pl: Disable 'a1' test.
+---
+ tests/datamash-output-format.pl | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/tests/datamash-output-format.pl b/tests/datamash-output-format.pl
+index ca99bb0..5e90ae0 100755
+--- a/tests/datamash-output-format.pl
++++ b/tests/datamash-output-format.pl
+@@ -90,7 +90,9 @@ my @Tests =
+ ['e2', '--format "%.3e" sum 1', {IN_PIPE=>$in1}, {OUT=>"1.000e+00\n"}],
+
+ # Test Custom formats: %a
+- ['a1', '--format "%0.3a" sum 1', {IN_PIPE=>$in1}, {OUT=>"0x8.000p-3\n"}],
++ # Disable the test for now. Valid output can differ (e.g. 0x8.000p-3 and
++ # 0x1.000p0 ).
++ # ['a1', '--format "%0.3a" sum 1', {IN_PIPE=>$in1}, {OUT=>"0x8.000p-3\n"}],
+
+
+ # Custom formats can use lots of memory
+--
+2.7.4
+
diff --git a/gnu/packages/patches/freeimage-unbundle.patch b/gnu/packages/patches/freeimage-unbundle.patch
new file mode 100644
index 0000000000..2727d9fbda
--- /dev/null
+++ b/gnu/packages/patches/freeimage-unbundle.patch
@@ -0,0 +1,550 @@
+https://src.fedoraproject.org/cgit/rpms/freeimage.git/tree/FreeImage-3.17.0_unbundle.patch
+
+diff -rupN FreeImage/genfipsrclist.sh FreeImage-new/genfipsrclist.sh
+--- FreeImage/genfipsrclist.sh 2015-02-20 10:52:16.000000000 +0100
++++ FreeImage-new/genfipsrclist.sh 2015-09-05 02:13:52.041353305 +0200
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+
+-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib Wrapper/FreeImagePlus"
++DIRLIST="Wrapper/FreeImagePlus"
+
+
+ echo "VER_MAJOR = 3" > fipMakefile.srcs
+@@ -19,5 +19,6 @@ echo -n "INCLUDE =" >> fipMakefile.srcs
+ for DIR in $DIRLIST; do
+ echo -n " -I$DIR" >> fipMakefile.srcs
+ done
++echo -n " -IDist" >> fipMakefile.srcs
+ echo >> fipMakefile.srcs
+
+diff -rupN FreeImage/gensrclist.sh FreeImage-new/gensrclist.sh
+--- FreeImage/gensrclist.sh 2015-02-20 10:51:50.000000000 +0100
++++ FreeImage-new/gensrclist.sh 2015-09-05 02:13:52.041353305 +0200
+@@ -1,6 +1,6 @@
+ #!/bin/sh
+
+-DIRLIST=". Source Source/Metadata Source/FreeImageToolkit Source/LibJPEG Source/LibPNG Source/LibTIFF4 Source/ZLib Source/LibOpenJPEG Source/OpenEXR Source/OpenEXR/Half Source/OpenEXR/Iex Source/OpenEXR/IlmImf Source/OpenEXR/IlmThread Source/OpenEXR/Imath Source/OpenEXR/IexMath Source/LibRawLite Source/LibRawLite/dcraw Source/LibRawLite/internal Source/LibRawLite/libraw Source/LibRawLite/src Source/LibWebP Source/LibJXR Source/LibJXR/common/include Source/LibJXR/image/sys Source/LibJXR/jxrgluelib"
++DIRLIST=". Source Source/Metadata Source/FreeImageToolkit"
+
+ echo "VER_MAJOR = 3" > Makefile.srcs
+ echo "VER_MINOR = 17.0" >> Makefile.srcs
+diff -rupN FreeImage/Makefile.fip FreeImage-new/Makefile.fip
+--- FreeImage/Makefile.fip 2015-03-08 18:03:56.000000000 +0100
++++ FreeImage-new/Makefile.fip 2015-09-05 02:14:09.212684028 +0200
+@@ -17,20 +17,22 @@ MODULES = $(SRCS:.c=.o)
+ MODULES := $(MODULES:.cpp=.o)
+ CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
+ # OpenJPEG
+-CFLAGS += -DOPJ_STATIC
++override CFLAGS += -DOPJ_STATIC
+ # LibRaw
+-CFLAGS += -DNO_LCMS
++override CFLAGS += -DNO_LCMS
+ # LibJXR
+-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
+-CFLAGS += $(INCLUDE)
++override CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
++override CFLAGS += $(INCLUDE)
+ CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
+ # LibJXR
+-CXXFLAGS += -D__ANSI__
+-CXXFLAGS += $(INCLUDE)
++override CXXFLAGS += -D__ANSI__
++override CXXFLAGS += $(INCLUDE)
++LDFLAGS ?=
++override LDFLAGS += -LDist -lfreeimage-$(VER_MAJOR).$(VER_MINOR)
+
+ ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
+- CFLAGS += -fPIC
+- CXXFLAGS += -fPIC
++ override CFLAGS += -fPIC
++ override CXXFLAGS += -fPIC
+ endif
+
+ TARGET = freeimageplus
+@@ -68,7 +70,7 @@ $(STATICLIB): $(MODULES)
+ $(AR) r $@ $(MODULES)
+
+ $(SHAREDLIB): $(MODULES)
+- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
++ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+
+ install:
+ install -d $(INCDIR) $(INSTALLDIR)
+diff -rupN FreeImage/Makefile.gnu FreeImage-new/Makefile.gnu
+--- FreeImage/Makefile.gnu 2015-03-08 18:04:00.000000000 +0100
++++ FreeImage-new/Makefile.gnu 2015-09-05 02:14:04.810599259 +0200
+@@ -16,21 +16,11 @@ LIBRARIES = -lstdc++
+ MODULES = $(SRCS:.c=.o)
+ MODULES := $(MODULES:.cpp=.o)
+ CFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden
+-# OpenJPEG
+-CFLAGS += -DOPJ_STATIC
+-# LibRaw
+-CFLAGS += -DNO_LCMS
+-# LibJXR
+-CFLAGS += -DDISABLE_PERF_MEASUREMENT -D__ANSI__
+-CFLAGS += $(INCLUDE)
+-CXXFLAGS ?= -O3 -fPIC -fexceptions -fvisibility=hidden -Wno-ctor-dtor-privacy
+-# LibJXR
+-CXXFLAGS += -D__ANSI__
+-CXXFLAGS += $(INCLUDE)
++override CFLAGS += $(INCLUDE) -D__ANSI__ -I/usr/include/jxrlib $(shell pkg-config --cflags OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
++override LDFLAGS += -ljpeg -ljpegxr -ljxrglue $(shell pkg-config --libs OpenEXR libopenjp2 libraw libpng libtiff-4 libwebp libwebpmux zlib)
+
+ ifeq ($(shell sh -c 'uname -m 2>/dev/null || echo not'),x86_64)
+- CFLAGS += -fPIC
+- CXXFLAGS += -fPIC
++ override CFLAGS += -fPIC
+ endif
+
+ TARGET = freeimage
+@@ -61,13 +51,13 @@ FreeImage: $(STATICLIB) $(SHAREDLIB)
+ $(CC) $(CFLAGS) -c $< -o $@
+
+ .cpp.o:
+- $(CXX) $(CXXFLAGS) -c $< -o $@
++ $(CXX) $(CFLAGS) -c $< -o $@
+
+ $(STATICLIB): $(MODULES)
+ $(AR) r $@ $(MODULES)
+
+ $(SHAREDLIB): $(MODULES)
+- $(CC) -s -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
++ $(CC) -shared -Wl,-soname,$(VERLIBNAME) $(LDFLAGS) -o $@ $(MODULES) $(LIBRARIES)
+
+ install:
+ install -d $(INCDIR) $(INSTALLDIR)
+diff -rupN FreeImage/Source/FreeImage/J2KHelper.cpp FreeImage-new/Source/FreeImage/J2KHelper.cpp
+--- FreeImage/Source/FreeImage/J2KHelper.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/J2KHelper.cpp 2015-09-05 02:13:52.042353324 +0200
+@@ -21,7 +21,7 @@
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../LibOpenJPEG/openjpeg.h"
++#include <openjpeg.h>
+ #include "J2KHelper.h"
+
+ // --------------------------------------------------------------------------
+diff -rupN FreeImage/Source/FreeImage/Plugin.cpp FreeImage-new/Source/FreeImage/Plugin.cpp
+--- FreeImage/Source/FreeImage/Plugin.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/Plugin.cpp 2015-09-05 02:13:52.042353324 +0200
+@@ -263,7 +263,12 @@ FreeImage_Initialise(BOOL load_local_plu
+ s_plugins->AddNode(InitDDS);
+ s_plugins->AddNode(InitGIF);
+ s_plugins->AddNode(InitHDR);
+- s_plugins->AddNode(InitG3);
++/* The G3 fax format plugin is deliberately disabled in the Fedora build of
++ FreeImage as it requires that FreeImage uses a private copy of libtiff
++ which is a no no because of security reasons. */
++#if 0
++ s_plugins->AddNode(InitG3);
++#endif
+ s_plugins->AddNode(InitSGI);
+ s_plugins->AddNode(InitEXR);
+ s_plugins->AddNode(InitJ2K);
+diff -rupN FreeImage/Source/FreeImage/PluginEXR.cpp FreeImage-new/Source/FreeImage/PluginEXR.cpp
+--- FreeImage/Source/FreeImage/PluginEXR.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginEXR.cpp 2015-09-05 02:13:52.042353324 +0200
+@@ -28,16 +28,16 @@
+ #pragma warning (disable : 4800) // ImfVersion.h - 'const int' : forcing value to bool 'true' or 'false' (performance warning)
+ #endif
+
+-#include "../OpenEXR/IlmImf/ImfIO.h"
+-#include "../OpenEXR/Iex/Iex.h"
+-#include "../OpenEXR/IlmImf/ImfOutputFile.h"
+-#include "../OpenEXR/IlmImf/ImfInputFile.h"
+-#include "../OpenEXR/IlmImf/ImfRgbaFile.h"
+-#include "../OpenEXR/IlmImf/ImfChannelList.h"
+-#include "../OpenEXR/IlmImf/ImfRgba.h"
+-#include "../OpenEXR/IlmImf/ImfArray.h"
+-#include "../OpenEXR/IlmImf/ImfPreviewImage.h"
+-#include "../OpenEXR/Half/half.h"
++#include <OpenEXR/ImfIO.h>
++#include <OpenEXR/Iex.h>
++#include <OpenEXR/ImfOutputFile.h>
++#include <OpenEXR/ImfInputFile.h>
++#include <OpenEXR/ImfRgbaFile.h>
++#include <OpenEXR/ImfChannelList.h>
++#include <OpenEXR/ImfRgba.h>
++#include <OpenEXR/ImfArray.h>
++#include <OpenEXR/ImfPreviewImage.h>
++#include <OpenEXR/half.h>
+
+
+ // ==========================================================
+diff -rupN FreeImage/Source/FreeImage/PluginJ2K.cpp FreeImage-new/Source/FreeImage/PluginJ2K.cpp
+--- FreeImage/Source/FreeImage/PluginJ2K.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginJ2K.cpp 2015-09-05 02:13:52.043353343 +0200
+@@ -21,7 +21,7 @@
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../LibOpenJPEG/openjpeg.h"
++#include <openjpeg.h>
+ #include "J2KHelper.h"
+
+ // ==========================================================
+diff -rupN FreeImage/Source/FreeImage/PluginJP2.cpp FreeImage-new/Source/FreeImage/PluginJP2.cpp
+--- FreeImage/Source/FreeImage/PluginJP2.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginJP2.cpp 2015-09-05 02:13:52.043353343 +0200
+@@ -21,7 +21,7 @@
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../LibOpenJPEG/openjpeg.h"
++#include <openjpeg.h>
+ #include "J2KHelper.h"
+
+ // ==========================================================
+diff -rupN FreeImage/Source/FreeImage/PluginJPEG.cpp FreeImage-new/Source/FreeImage/PluginJPEG.cpp
+--- FreeImage/Source/FreeImage/PluginJPEG.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginJPEG.cpp 2015-09-05 02:13:52.043353343 +0200
+@@ -35,9 +35,9 @@ extern "C" {
+ #undef FAR
+ #include <setjmp.h>
+
+-#include "../LibJPEG/jinclude.h"
+-#include "../LibJPEG/jpeglib.h"
+-#include "../LibJPEG/jerror.h"
++#include <stdio.h>
++#include <jpeglib.h>
++#include <jerror.h>
+ }
+
+ #include "FreeImage.h"
+diff -rupN FreeImage/Source/FreeImage/PluginJXR.cpp FreeImage-new/Source/FreeImage/PluginJXR.cpp
+--- FreeImage/Source/FreeImage/PluginJXR.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginJXR.cpp 2015-09-05 02:13:52.043353343 +0200
+@@ -23,7 +23,7 @@
+ #include "Utilities.h"
+ #include "../Metadata/FreeImageTag.h"
+
+-#include "../LibJXR/jxrgluelib/JXRGlue.h"
++#include <JXRGlue.h>
+
+ // ==========================================================
+ // Plugin Interface
+diff -rupN FreeImage/Source/FreeImage/PluginPNG.cpp FreeImage-new/Source/FreeImage/PluginPNG.cpp
+--- FreeImage/Source/FreeImage/PluginPNG.cpp 2015-03-10 20:16:12.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginPNG.cpp 2015-09-05 02:13:52.044353363 +0200
+@@ -40,8 +40,8 @@
+
+ // ----------------------------------------------------------
+
+-#include "../ZLib/zlib.h"
+-#include "../LibPNG/png.h"
++#include <zlib.h>
++#include <png.h>
+
+ // ----------------------------------------------------------
+
+diff -rupN FreeImage/Source/FreeImage/PluginRAW.cpp FreeImage-new/Source/FreeImage/PluginRAW.cpp
+--- FreeImage/Source/FreeImage/PluginRAW.cpp 2015-03-08 20:12:04.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginRAW.cpp 2015-09-05 02:13:52.044353363 +0200
+@@ -19,7 +19,7 @@
+ // Use at your own risk!
+ // ==========================================================
+
+-#include "../LibRawLite/libraw/libraw.h"
++#include <libraw/libraw.h>
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+diff -rupN FreeImage/Source/FreeImage/PluginTIFF.cpp FreeImage-new/Source/FreeImage/PluginTIFF.cpp
+--- FreeImage/Source/FreeImage/PluginTIFF.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginTIFF.cpp 2015-09-05 02:13:52.044353363 +0200
+@@ -37,9 +37,9 @@
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../LibTIFF4/tiffiop.h"
++#include <tiffio.h>
+ #include "../Metadata/FreeImageTag.h"
+-#include "../OpenEXR/Half/half.h"
++#include <OpenEXR/half.h>
+
+ #include "FreeImageIO.h"
+ #include "PSDParser.h"
+@@ -194,16 +194,6 @@ TIFFFdOpen(thandle_t handle, const char
+ return tif;
+ }
+
+-/**
+-Open a TIFF file for reading or writing
+-@param name
+-@param mode
+-*/
+-TIFF*
+-TIFFOpen(const char* name, const char* mode) {
+- return 0;
+-}
+-
+ // ----------------------------------------------------------
+ // TIFF library FreeImage-specific routines.
+ // ----------------------------------------------------------
+diff -rupN FreeImage/Source/FreeImage/PluginWebP.cpp FreeImage-new/Source/FreeImage/PluginWebP.cpp
+--- FreeImage/Source/FreeImage/PluginWebP.cpp 2015-03-02 02:07:08.000000000 +0100
++++ FreeImage-new/Source/FreeImage/PluginWebP.cpp 2015-09-05 02:13:52.044353363 +0200
+@@ -24,10 +24,10 @@
+
+ #include "../Metadata/FreeImageTag.h"
+
+-#include "../LibWebP/src/webp/decode.h"
+-#include "../LibWebP/src/webp/encode.h"
+-#include "../LibWebP/src/enc/vp8enci.h"
+-#include "../LibWebP/src/webp/mux.h"
++#include <webp/decode.h>
++#include <webp/encode.h>
++// #include "../LibWebP/src/enc/vp8enci.h"
++#include <webp/mux.h>
+
+ // ==========================================================
+ // Plugin Interface
+diff -rupN FreeImage/Source/FreeImage/ZLibInterface.cpp FreeImage-new/Source/FreeImage/ZLibInterface.cpp
+--- FreeImage/Source/FreeImage/ZLibInterface.cpp 2015-03-02 02:07:10.000000000 +0100
++++ FreeImage-new/Source/FreeImage/ZLibInterface.cpp 2015-09-05 02:13:52.044353363 +0200
+@@ -19,10 +19,9 @@
+ // Use at your own risk!
+ // ==========================================================
+
+-#include "../ZLib/zlib.h"
++#include <zlib.h>
+ #include "FreeImage.h"
+ #include "Utilities.h"
+-#include "../ZLib/zutil.h" /* must be the last header because of error C3163 in VS2008 (_vsnprintf defined in stdio.h) */
+
+ /**
+ Compresses a source buffer into a target buffer, using the ZLib library.
+@@ -115,7 +114,7 @@ FreeImage_ZLibGZip(BYTE *target, DWORD t
+ return 0;
+ case Z_OK: {
+ // patch header, setup crc and length (stolen from mod_trace_output)
+- BYTE *p = target + 8; *p++ = 2; *p = OS_CODE; // xflags, os_code
++ BYTE *p = target + 8; *p++ = 2; *p = 0x03; // xflags, os_code (unix)
+ crc = crc32(crc, source, source_size);
+ memcpy(target + 4 + dest_len, &crc, 4);
+ memcpy(target + 8 + dest_len, &source_size, 4);
+diff -rupN FreeImage/Source/FreeImage.h FreeImage-new/Source/FreeImage.h
+--- FreeImage/Source/FreeImage.h 2015-03-04 02:17:54.000000000 +0100
++++ FreeImage-new/Source/FreeImage.h 2015-09-05 02:13:52.045353382 +0200
+@@ -155,8 +155,11 @@ typedef uint8_t BYTE;
+ typedef uint16_t WORD;
+ typedef uint32_t DWORD;
+ typedef int32_t LONG;
++// Disable these, they conflict with the (wrong) ones of libraw
++#if 0
+ typedef int64_t INT64;
+ typedef uint64_t UINT64;
++#endif
+ #else
+ // MS is not C99 ISO compliant
+ typedef long BOOL;
+@@ -410,7 +413,12 @@ FI_ENUM(FREE_IMAGE_FORMAT) {
+ FIF_DDS = 24,
+ FIF_GIF = 25,
+ FIF_HDR = 26,
+- FIF_FAXG3 = 27,
++/* The G3 fax format plugin is deliberately disabled in the Fedora build of
++ FreeImage as it requires that FreeImage uses a private copy of libtiff
++ which is a no no because of security reasons. */
++#if 0
++ FIF_FAXG3 = 27,
++#endif
+ FIF_SGI = 28,
+ FIF_EXR = 29,
+ FIF_J2K = 30,
+@@ -473,6 +481,10 @@ FI_ENUM(FREE_IMAGE_DITHER) {
+ FID_BAYER16x16 = 6 //! Bayer ordered dispersed dot dithering (order 4 dithering matrix)
+ };
+
++/* The FreeImage_JPEGTransform functions are deliberately disabled in the
++ Fedora build of FreeImage as they require that FreeImage uses a private copy
++ of libjpeg which is a no no because of security reasons. */
++#if 0
+ /** Lossless JPEG transformations
+ Constants used in FreeImage_JPEGTransform
+ */
+@@ -486,6 +498,7 @@ FI_ENUM(FREE_IMAGE_JPEG_OPERATION) {
+ FIJPEG_OP_ROTATE_180 = 6, //! 180-degree rotation
+ FIJPEG_OP_ROTATE_270 = 7 //! 270-degree clockwise (or 90 ccw)
+ };
++#endif
+
+ /** Tone mapping operators.
+ Constants used in FreeImage_ToneMapping.
+@@ -1076,7 +1089,10 @@ DLL_API const char* DLL_CALLCONV FreeIma
+ // --------------------------------------------------------------------------
+ // JPEG lossless transformation routines
+ // --------------------------------------------------------------------------
+-
++/* The FreeImage_JPEGTransform functions are deliberately disabled in the
+++ Fedora build of FreeImage as they require that FreeImage uses a private copy
+++ of libjpeg which is a no no because of security reasons. */
++#if 0
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransform(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, BOOL perfect FI_DEFAULT(TRUE));
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGCrop(const char *src_file, const char *dst_file, int left, int top, int right, int bottom);
+@@ -1085,6 +1101,7 @@ DLL_API BOOL DLL_CALLCONV FreeImage_JPEG
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombined(const char *src_file, const char *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedU(const wchar_t *src_file, const wchar_t *dst_file, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
+ DLL_API BOOL DLL_CALLCONV FreeImage_JPEGTransformCombinedFromMemory(FIMEMORY* src_stream, FIMEMORY* dst_stream, FREE_IMAGE_JPEG_OPERATION operation, int* left, int* top, int* right, int* bottom, BOOL perfect FI_DEFAULT(TRUE));
++#endif
+
+
+ // --------------------------------------------------------------------------
+diff -rupN FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp
+--- FreeImage/Source/FreeImageToolkit/JPEGTransform.cpp 2015-03-02 02:07:10.000000000 +0100
++++ FreeImage-new/Source/FreeImageToolkit/JPEGTransform.cpp 2015-09-05 02:13:52.045353382 +0200
+@@ -26,10 +26,10 @@ extern "C" {
+ #undef FAR
+ #include <setjmp.h>
+
+-#include "../LibJPEG/jinclude.h"
+-#include "../LibJPEG/jpeglib.h"
+-#include "../LibJPEG/jerror.h"
+-#include "../LibJPEG/transupp.h"
++#include <jinclude.h>
++#include <jpeglib.h>
++#include <jerror.h>
++#include <transupp.h>
+ }
+
+ #include "FreeImage.h"
+diff -rupN FreeImage/Source/Metadata/TagConversion.cpp FreeImage-new/Source/Metadata/TagConversion.cpp
+--- FreeImage/Source/Metadata/TagConversion.cpp 2015-03-02 02:07:10.000000000 +0100
++++ FreeImage-new/Source/Metadata/TagConversion.cpp 2015-09-05 02:13:52.045353382 +0200
+@@ -30,6 +30,11 @@
+
+ #define MAX_TEXT_EXTENT 512
+
++// These were in FreeImage.h, but are moved here to avoid conflicts (see note in FreeImage.h)
++typedef int64_t INT64;
++typedef uint64_t UINT64;
++
++
+ /**
+ Convert a tag to a C string
+ */
+diff -rupN FreeImage/Source/Metadata/XTIFF.cpp FreeImage-new/Source/Metadata/XTIFF.cpp
+--- FreeImage/Source/Metadata/XTIFF.cpp 2015-03-02 02:07:10.000000000 +0100
++++ FreeImage-new/Source/Metadata/XTIFF.cpp 2015-09-05 02:13:52.045353382 +0200
+@@ -29,13 +29,18 @@
+ #pragma warning (disable : 4786) // identifier was truncated to 'number' characters
+ #endif
+
+-#include "../LibTIFF4/tiffiop.h"
++#include <tiffio.h>
+
+ #include "FreeImage.h"
+ #include "Utilities.h"
+ #include "FreeImageTag.h"
+ #include "FIRational.h"
+
++extern "C"
++{
++ int _TIFFDataSize(TIFFDataType type);
++}
++
+ // ----------------------------------------------------------
+ // Extended TIFF Directory GEO Tag Support
+ // ----------------------------------------------------------
+@@ -224,6 +229,33 @@ tiff_write_geotiff_profile(TIFF *tif, FI
+ // TIFF EXIF tag reading & writing
+ // ----------------------------------------------------------
+
++static uint32 exif_tag_ids[] = {
++ EXIFTAG_EXPOSURETIME, EXIFTAG_FNUMBER, EXIFTAG_EXPOSUREPROGRAM,
++ EXIFTAG_SPECTRALSENSITIVITY, EXIFTAG_ISOSPEEDRATINGS, EXIFTAG_OECF,
++ EXIFTAG_EXIFVERSION, EXIFTAG_DATETIMEORIGINAL, EXIFTAG_DATETIMEDIGITIZED,
++ EXIFTAG_COMPONENTSCONFIGURATION, EXIFTAG_COMPRESSEDBITSPERPIXEL,
++ EXIFTAG_SHUTTERSPEEDVALUE, EXIFTAG_APERTUREVALUE,
++ EXIFTAG_BRIGHTNESSVALUE, EXIFTAG_EXPOSUREBIASVALUE,
++ EXIFTAG_MAXAPERTUREVALUE, EXIFTAG_SUBJECTDISTANCE, EXIFTAG_METERINGMODE,
++ EXIFTAG_LIGHTSOURCE, EXIFTAG_FLASH, EXIFTAG_FOCALLENGTH,
++ EXIFTAG_SUBJECTAREA, EXIFTAG_MAKERNOTE, EXIFTAG_USERCOMMENT,
++ EXIFTAG_SUBSECTIME, EXIFTAG_SUBSECTIMEORIGINAL,
++ EXIFTAG_SUBSECTIMEDIGITIZED, EXIFTAG_FLASHPIXVERSION, EXIFTAG_COLORSPACE,
++ EXIFTAG_PIXELXDIMENSION, EXIFTAG_PIXELYDIMENSION,
++ EXIFTAG_RELATEDSOUNDFILE, EXIFTAG_FLASHENERGY,
++ EXIFTAG_SPATIALFREQUENCYRESPONSE, EXIFTAG_FOCALPLANEXRESOLUTION,
++ EXIFTAG_FOCALPLANEYRESOLUTION, EXIFTAG_FOCALPLANERESOLUTIONUNIT,
++ EXIFTAG_SUBJECTLOCATION, EXIFTAG_EXPOSUREINDEX, EXIFTAG_SENSINGMETHOD,
++ EXIFTAG_FILESOURCE, EXIFTAG_SCENETYPE, EXIFTAG_CFAPATTERN,
++ EXIFTAG_CUSTOMRENDERED, EXIFTAG_EXPOSUREMODE, EXIFTAG_WHITEBALANCE,
++ EXIFTAG_DIGITALZOOMRATIO, EXIFTAG_FOCALLENGTHIN35MMFILM,
++ EXIFTAG_SCENECAPTURETYPE, EXIFTAG_GAINCONTROL, EXIFTAG_CONTRAST,
++ EXIFTAG_SATURATION, EXIFTAG_SHARPNESS, EXIFTAG_DEVICESETTINGDESCRIPTION,
++ EXIFTAG_SUBJECTDISTANCERANGE, EXIFTAG_GAINCONTROL, EXIFTAG_GAINCONTROL,
++ EXIFTAG_IMAGEUNIQUEID
++};
++static int nExifTags = sizeof(exif_tag_ids) / sizeof(exif_tag_ids[0]);
++
+ /**
+ Read a single Exif tag
+
+@@ -575,45 +607,11 @@ tiff_read_exif_tags(TIFF *tif, TagLib::M
+
+ // loop over all Core Directory Tags
+ // ### uses private data, but there is no other way
++ // -> Fedora: Best we can do without private headers is to hard-code a list of known EXIF tags and read those
+ if(md_model == TagLib::EXIF_MAIN) {
+- const TIFFDirectory *td = &tif->tif_dir;
+-
+- uint32 lastTag = 0; //<- used to prevent reading some tags twice (as stored in tif_fieldinfo)
+-
+- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
+- const TIFFField *fld = tif->tif_fields[fi];
+-
+- const uint32 tag_id = TIFFFieldTag(fld);
+-
+- if(tag_id == lastTag) {
+- continue;
+- }
+-
+- // test if tag value is set
+- // (lifted directly from LibTiff _TIFFWriteDirectory)
+-
+- if( fld->field_bit == FIELD_CUSTOM ) {
+- int is_set = FALSE;
+-
+- for(int ci = 0; ci < td->td_customValueCount; ci++ ) {
+- is_set |= (td->td_customValues[ci].info == fld);
+- }
+-
+- if( !is_set ) {
+- continue;
+- }
+-
+- } else if(!TIFFFieldSet(tif, fld->field_bit)) {
+- continue;
+- }
+-
+- // process *all* other tags (some will be ignored)
+-
+- tiff_read_exif_tag(tif, tag_id, dib, md_model);
+-
+- lastTag = tag_id;
++ for (int i = 0; i < nExifTags; ++i) {
++ tiff_read_exif_tag(tif, exif_tag_ids[i], dib, md_model);
+ }
+-
+ }
+
+ return TRUE;
+@@ -723,10 +721,9 @@ tiff_write_exif_tags(TIFF *tif, TagLib::
+
+ TagLib& tag_lib = TagLib::instance();
+
+- for (int fi = 0, nfi = (int)tif->tif_nfields; nfi > 0; nfi--, fi++) {
+- const TIFFField *fld = tif->tif_fields[fi];
+-
+- const uint32 tag_id = TIFFFieldTag(fld);
++ for (int fi = 0; fi < nExifTags; fi++) {
++ const uint32 tag_id = exif_tag_ids[fi];
++ const TIFFField *fld = TIFFFieldWithTag(tif, tag_id);
+
+ if(skip_write_field(tif, tag_id)) {
+ // skip tags that are already handled by the LibTIFF writing process
diff --git a/gnu/packages/patches/htop-fix-process-tree.patch b/gnu/packages/patches/htop-fix-process-tree.patch
deleted file mode 100644
index d8e5e2ccac..0000000000
--- a/gnu/packages/patches/htop-fix-process-tree.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 2971a187551e062ffefdab965f55377b36cd94eb Mon Sep 17 00:00:00 2001
-From: Tobias Geerinckx-Rice <me@tobias.gr>
-Date: Wed, 21 Feb 2018 06:00:50 +0100
-Subject: [PATCH] Fix process tree
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This manually reverts:
-
- commit 584a9bceab948590dabd189d234a86e6bf4ec3f4
- Author: wangqr <wangqr@wangqr.tk>
- Date: Fri Sep 1 21:27:24 2017 +0800
-
- Find roots when constructing process tree, fix #587
-
-which breaks the process tree (‘t’) view in at least some cases.
-I will investigate further...
----
- ProcessList.c | 63 +++++++++++++++++------------------------------------------
- 1 file changed, 18 insertions(+), 45 deletions(-)
-
-diff --git a/ProcessList.c b/ProcessList.c
-index 48b2d95..225253d 100644
---- a/ProcessList.c
-+++ b/ProcessList.c
-@@ -213,51 +213,24 @@ void ProcessList_sort(ProcessList* this) {
- // Restore settings
- this->settings->sortKey = sortKey;
- this->settings->direction = direction;
-- int vsize = Vector_size(this->processes);
-- // Find all processes whose parent is not visible
-- int size;
-- while ((size = Vector_size(this->processes))) {
-- int i;
-- for (i = 0; i < size; i++) {
-- Process* process = (Process*)(Vector_get(this->processes, i));
-- // Immediately consume not shown processes
-- if (!process->show) {
-- process = (Process*)(Vector_take(this->processes, i));
-- process->indent = 0;
-- Vector_add(this->processes2, process);
-- ProcessList_buildTree(this, process->pid, 0, 0, direction, false);
-- break;
-- }
-- pid_t ppid = process->tgid == process->pid ? process->ppid : process->tgid;
-- // Bisect the process vector to find parent
-- int l = 0, r = size;
-- // If PID corresponds with PPID (e.g. "kernel_task" (PID:0, PPID:0)
-- // on Mac OS X 10.11.6) cancel bisecting and regard this process as
-- // root.
-- if (process->pid == ppid)
-- r = 0;
-- while (l < r) {
-- int c = (l + r) / 2;
-- pid_t pid = ((Process*)(Vector_get(this->processes, c)))->pid;
-- if (ppid == pid) {
-- break;
-- } else if (ppid < pid) {
-- r = c;
-- } else {
-- l = c + 1;
-- }
-- }
-- // If parent not found, then construct the tree with this root
-- if (l >= r) {
-- process = (Process*)(Vector_take(this->processes, i));
-- process->indent = 0;
-- Vector_add(this->processes2, process);
-- ProcessList_buildTree(this, process->pid, 0, 0, direction, process->showChildren);
-- break;
-- }
-- }
-- // There should be no loop in the process tree
-- assert(i < size);
-+
-+ // Take PID 1 as root and add to the new listing
-+ int vsize = Vector_size(this->processes);
-+ Process* init = (Process*) (Vector_take(this->processes, 0));
-+ if (!init) return;
-+ // This assertion crashes on hardened kernels.
-+ // I wonder how well tree view works on those systems.
-+ // assert(init->pid == 1);
-+ init->indent = 0;
-+ Vector_add(this->processes2, init);
-+ // Recursively empty list
-+ ProcessList_buildTree(this, init->pid, 0, 0, direction, true);
-+ // Add leftovers
-+ while (Vector_size(this->processes)) {
-+ Process* p = (Process*) (Vector_take(this->processes, 0));
-+ p->indent = 0;
-+ Vector_add(this->processes2, p);
-+ ProcessList_buildTree(this, p->pid, 0, 0, direction, p->showChildren);
- }
- assert(Vector_size(this->processes2) == vsize); (void)vsize;
- assert(Vector_size(this->processes) == 0);
---
-2.16.2
-
diff --git a/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch b/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch
deleted file mode 100644
index c457d592cc..0000000000
--- a/gnu/packages/patches/libmygpo-qt-fix-jsoncreatortest.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ebe2323727f8d646590245b0bf06dbc92b5808d6 Mon Sep 17 00:00:00 2001
-From: Golubev Alexander <fatzer2@gmail.com>
-Date: Tue, 20 Sep 2016 15:33:30 +0400
-Subject: [PATCH] JsonCreatorTest failed due to extra space
-
-JsonCreatorTest failed with next message:
-```
-********* Start testing of mygpo::JsonCreatorTest *********
-Config: Using QTest library 4.8.6, Qt 4.8.6
-PASS : mygpo::JsonCreatorTest::initTestCase()
-PASS : mygpo::JsonCreatorTest::testAddRemoveSubsToJSON()
-PASS : mygpo::JsonCreatorTest::testSaveSettingsToJSON()
-FAIL! : mygpo::JsonCreatorTest::testEpisodeActionListToJSON() Compared values are not the same
- Actual (outString2): [{"action":"download","device":"device1","episode":"http://episode.url","podcast":"http://podcast.url","timestamp":"1998-01-01T00:01:02"},{"action":"delete","device":"device3","episode":"http://episode2.url","podcast":"http://podcast2.url","timestamp":"1920-01-01T12:01:02"},{"action":"new","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","timestamp":"1998-01-01T00:01:02"},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","timestamp":"1920-01-01T12:01:02"},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","position":123,"started":10,"timestamp":"1998-01-01T00:01:02","total":321},{"action":"play","device":"foodev","episode":"http://www.podtrac.com","podcast":"http://leo.am","position":10,"timestamp":"1998-01-01T00:01:02"}]
- Expected (expected2): [{"action":"download","device":"device1","episode":"http://episode.url","podcast":"http:
- Loc: [/var/tmp/portage/media-libs/libmygpo-qt-1.0.9-r1/work/libmygpo-qt-1.0.9/tests/JsonCreatorTest.cpp(138)]
-PASS : mygpo::JsonCreatorTest::testRenameDeviceStringToJSON()
-PASS : mygpo::JsonCreatorTest::testDeviceSynchronizationListsToJSON()
-PASS : mygpo::JsonCreatorTest::cleanupTestCase()
-Totals: 6 passed, 1 failed, 0 skipped
-********* Finished testing of mygpo::JsonCreatorTest *********
-```
-
-This was caused by extra space in the expected string.
----
- tests/JsonCreatorTest.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/JsonCreatorTest.cpp b/tests/JsonCreatorTest.cpp
-index b15b006..feb03d5 100644
---- a/tests/JsonCreatorTest.cpp
-+++ b/tests/JsonCreatorTest.cpp
-@@ -133,7 +133,7 @@ void JsonCreatorTest::testEpisodeActionListToJSON()
-
- output = JsonCreator::episodeActionListToJSON(episodeActions);
- QString outString2 = QString::fromLatin1( output ).replace( QLatin1String(" "), QLatin1String("") );
-- QString expected2( QLatin1String( "[{\"action\":\"download\",\"device\":\"device1\",\"episode\":\"http://episode.url\",\"podcast\":\"http://podcast.url\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"delete\",\"device\":\"device3\",\"episode\":\"http://episode2.url\",\"podcast\":\"http://podcast2.url\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"new\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1920-01-01T12:01:02\" },{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":123,\"started\":10,\"timestamp\":\"1998-01-01T00:01:02\",\"total\":321},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":10,\"timestamp\":\"1998-01-01T00:01:02\"}]" ) );
-+ QString expected2( QLatin1String( "[{\"action\":\"download\",\"device\":\"device1\",\"episode\":\"http://episode.url\",\"podcast\":\"http://podcast.url\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"delete\",\"device\":\"device3\",\"episode\":\"http://episode2.url\",\"podcast\":\"http://podcast2.url\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"new\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1998-01-01T00:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"timestamp\":\"1920-01-01T12:01:02\"},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":123,\"started\":10,\"timestamp\":\"1998-01-01T00:01:02\",\"total\":321},{\"action\":\"play\",\"device\":\"foodev\",\"episode\":\"http://www.podtrac.com\",\"podcast\":\"http://leo.am\",\"position\":10,\"timestamp\":\"1998-01-01T00:01:02\"}]" ) );
-
- QCOMPARE(outString2, expected2 );
- }
diff --git a/gnu/packages/patches/mupen64plus-video-z64-glew-correct-path.patch b/gnu/packages/patches/mupen64plus-video-z64-glew-correct-path.patch
new file mode 100644
index 0000000000..c3fcfbbd0e
--- /dev/null
+++ b/gnu/packages/patches/mupen64plus-video-z64-glew-correct-path.patch
@@ -0,0 +1,36 @@
+From 21507b3600c616bca7049004eb518cf11f45f299 Mon Sep 17 00:00:00 2001
+From: "Anthony J. Bentley" <anthony@cathet.us>
+Date: Sun, 7 Jun 2015 02:41:28 -0600
+Subject: [PATCH] Correct the path to the GLEW header.
+
+---
+ src/glshader.cpp | 2 +-
+ src/rgl.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/glshader.cpp b/src/glshader.cpp
+index 4729945..a8947ea 100644
+--- a/src/glshader.cpp
++++ b/src/glshader.cpp
+@@ -23,7 +23,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include "rgl_assert.h"
+-#include <glew.h>
++#include <GL/glew.h>
+ #if defined(__MACOSX__)
+ #include <OpenGL/gl.h>
+ #include <OpenGL/glext.h>
+diff --git a/src/rgl.h b/src/rgl.h
+index c15f93f..1748406 100644
+--- a/src/rgl.h
++++ b/src/rgl.h
+@@ -26,7 +26,7 @@
+ #include "rgl_assert.h"
+ #include "rdp.h"
+
+-#include <glew.h>
++#include <GL/glew.h>
+ #if defined(__MACOSX__)
+ #include <OpenGL/gl.h>
+ #elif defined(__MACOS__)
diff --git a/gnu/packages/patches/qemu-CVE-2018-7550.patch b/gnu/packages/patches/qemu-CVE-2018-7550.patch
new file mode 100644
index 0000000000..43f111e206
--- /dev/null
+++ b/gnu/packages/patches/qemu-CVE-2018-7550.patch
@@ -0,0 +1,66 @@
+Fix CVE-2018-7550:
+
+https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7550
+
+Patch copied from upstream source repository:
+
+https://git.qemu.org/?p=qemu.git;a=patch;h=2a8fcd119eb7c6bb3837fc3669eb1b2dfb31daf8
+
+From 2a8fcd119eb7c6bb3837fc3669eb1b2dfb31daf8 Mon Sep 17 00:00:00 2001
+From: Jack Schwartz <jack.schwartz@oracle.com>
+Date: Thu, 21 Dec 2017 09:25:15 -0800
+Subject: [PATCH] multiboot: bss_end_addr can be zero
+
+The multiboot spec (https://www.gnu.org/software/grub/manual/multiboot/),
+section 3.1.3, allows for bss_end_addr to be zero.
+
+A zero bss_end_addr signifies there is no .bss section.
+
+Suggested-by: Daniel Kiper <daniel.kiper@oracle.com>
+Signed-off-by: Jack Schwartz <jack.schwartz@oracle.com>
+Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
+Reviewed-by: Prasad J Pandit <pjp@fedoraproject.org>
+Signed-off-by: Kevin Wolf <kwolf@redhat.com>
+---
+ hw/i386/multiboot.c | 18 ++++++++++--------
+ 1 file changed, 10 insertions(+), 8 deletions(-)
+
+diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c
+index 46d9c68bf5..bb8d8e4629 100644
+--- a/hw/i386/multiboot.c
++++ b/hw/i386/multiboot.c
+@@ -233,12 +233,6 @@ int load_multiboot(FWCfgState *fw_cfg,
+ mh_entry_addr = ldl_p(header+i+28);
+
+ if (mh_load_end_addr) {
+- if (mh_bss_end_addr < mh_load_addr) {
+- fprintf(stderr, "invalid mh_bss_end_addr address\n");
+- exit(1);
+- }
+- mb_kernel_size = mh_bss_end_addr - mh_load_addr;
+-
+ if (mh_load_end_addr < mh_load_addr) {
+ fprintf(stderr, "invalid mh_load_end_addr address\n");
+ exit(1);
+@@ -249,8 +243,16 @@ int load_multiboot(FWCfgState *fw_cfg,
+ fprintf(stderr, "invalid kernel_file_size\n");
+ exit(1);
+ }
+- mb_kernel_size = kernel_file_size - mb_kernel_text_offset;
+- mb_load_size = mb_kernel_size;
++ mb_load_size = kernel_file_size - mb_kernel_text_offset;
++ }
++ if (mh_bss_end_addr) {
++ if (mh_bss_end_addr < (mh_load_addr + mb_load_size)) {
++ fprintf(stderr, "invalid mh_bss_end_addr address\n");
++ exit(1);
++ }
++ mb_kernel_size = mh_bss_end_addr - mh_load_addr;
++ } else {
++ mb_kernel_size = mb_load_size;
+ }
+
+ /* Valid if mh_flags sets MULTIBOOT_HEADER_HAS_VBE.
+--
+2.17.0
+
diff --git a/gnu/packages/patches/sharutils-CVE-2018-1000097.patch b/gnu/packages/patches/sharutils-CVE-2018-1000097.patch
new file mode 100644
index 0000000000..8d58218184
--- /dev/null
+++ b/gnu/packages/patches/sharutils-CVE-2018-1000097.patch
@@ -0,0 +1,21 @@
+Fix CVE-2018-1000097:
+
+https://security-tracker.debian.org/tracker/CVE-2018-1000097
+https://nvd.nist.gov/vuln/detail/CVE-2018-1000097
+
+Patch taken from upstream bug report:
+https://lists.gnu.org/archive/html/bug-gnu-utils/2018-02/msg00005.html
+
+diff --git a/src/unshar.c b/src/unshar.c
+index 80bc3a9..0fc3773 100644
+--- a/src/unshar.c
++++ b/src/unshar.c
+@@ -240,7 +240,7 @@ find_archive (char const * name, FILE * file, off_t start)
+ off_t position = ftello (file);
+
+ /* Read next line, fail if no more and no previous process. */
+- if (!fgets (rw_buffer, BUFSIZ, file))
++ if (!fgets (rw_buffer, rw_base_size, file))
+ {
+ if (!start)
+ error (0, 0, _("Found no shell commands in %s"), name);