aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/patches
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-10-31 15:11:58 +0100
committerLudovic Courtès <ludo@gnu.org>2015-10-31 15:11:58 +0100
commitd9b9454c9865c148afc8498837e077581e43037d (patch)
tree528563f334c36e0c98981f5a41d23dbb948f6fff /gnu/packages/patches
parent375c610844c7776470edb88eafb18c48c6c90187 (diff)
parent3c3e69728c10bcdffa0c597b2b80a482361aea14 (diff)
downloadguix-d9b9454c9865c148afc8498837e077581e43037d.tar
guix-d9b9454c9865c148afc8498837e077581e43037d.tar.gz
Merge branch 'dbus-update'
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r--gnu/packages/patches/bluez-tests.patch25
-rw-r--r--gnu/packages/patches/dbus-helper-search-path.patch18
-rw-r--r--gnu/packages/patches/dbus-localstatedir.patch30
-rw-r--r--gnu/packages/patches/eudev-rules-directory.patch18
-rw-r--r--gnu/packages/patches/glib-tests-desktop.patch18
-rw-r--r--gnu/packages/patches/guitarix-c++11.patch297
-rw-r--r--gnu/packages/patches/libdrm-symbol-check.patch195
-rw-r--r--gnu/packages/patches/librsvg-tests.patch27
-rw-r--r--gnu/packages/patches/unzip-CVE-2015-7696.patch35
-rw-r--r--gnu/packages/patches/unzip-CVE-2015-7697.patch28
-rw-r--r--gnu/packages/patches/unzip-fix-overflows-and-infloop.patch108
-rw-r--r--gnu/packages/patches/unzip-overflow-on-invalid-input.patch40
12 files changed, 688 insertions, 151 deletions
diff --git a/gnu/packages/patches/bluez-tests.patch b/gnu/packages/patches/bluez-tests.patch
new file mode 100644
index 0000000000..608ded9be2
--- /dev/null
+++ b/gnu/packages/patches/bluez-tests.patch
@@ -0,0 +1,25 @@
+From 484ad8c9263bb524051a999ce19a994960e69572 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com>
+Date: Fri, 23 Oct 2015 20:48:57 +0800
+Subject: [PATCH] unit/test-gobex-header: Fix duplicate test names
+
+---
+ unit/test-gobex-header.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/unit/test-gobex-header.c b/unit/test-gobex-header.c
+index 6f49312..8705892 100644
+--- a/unit/test-gobex-header.c
++++ b/unit/test-gobex-header.c
+@@ -554,7 +554,7 @@ int main(int argc, char *argv[])
+ test_header_encode_name_umlaut);
+ g_test_add_func("/gobex/test_header_encode_body",
+ test_header_encode_body);
+- g_test_add_func("/gobex/test_header_encode_connid",
++ g_test_add_func("/gobex/test_header_encode_actionid",
+ test_header_encode_actionid);
+ g_test_add_func("/gobex/test_header_encode_apparam",
+ test_header_encode_apparam);
+--
+2.5.0
+
diff --git a/gnu/packages/patches/dbus-helper-search-path.patch b/gnu/packages/patches/dbus-helper-search-path.patch
new file mode 100644
index 0000000000..30c142312b
--- /dev/null
+++ b/gnu/packages/patches/dbus-helper-search-path.patch
@@ -0,0 +1,18 @@
+The setuid helper of D-Bus is responsible for "service activation".
+It looks for '.service' files in fixed locations, but the default locations
+make no sense (see below), so replace them with /etc/dbus-1/system-services.
+
+--- dbus-1.10.0/dbus/dbus-sysdeps-util-unix.c 2015-10-22 00:07:03.829251854 +0200
++++ dbus-1.10.0/dbus/dbus-sysdeps-util-unix.c 2015-10-22 00:07:14.893445175 +0200
+@@ -1410,10 +1410,7 @@ _dbus_get_standard_system_servicedirs (D
+ * be available.
+ */
+ static const char standard_search_path[] =
+- "/usr/local/share:"
+- "/usr/share:"
+- DBUS_DATADIR ":"
+- "/lib";
++ "/etc";
+ DBusString servicedir_path;
+
+ _dbus_string_init_const (&servicedir_path, standard_search_path);
diff --git a/gnu/packages/patches/dbus-localstatedir.patch b/gnu/packages/patches/dbus-localstatedir.patch
deleted file mode 100644
index 61bed91b5c..0000000000
--- a/gnu/packages/patches/dbus-localstatedir.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Do not try to create $localstatedir and $sysconfdir since we cannot do this
-when they are /var and /etc.
-
---- dbus-1.6.4/bus/Makefile.in 2013-09-11 16:15:13.000000000 +0200
-+++ dbus-1.6.4/bus/Makefile.in 2013-09-11 16:15:15.000000000 +0200
-@@ -1510,9 +1510,6 @@ clean-local:
- /bin/rm *.bb *.bbg *.da *.gcov || true
-
- install-data-hook:
-- $(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus
-- $(mkinstalldirs) $(DESTDIR)$(configdir)/system.d
-- $(mkinstalldirs) $(DESTDIR)$(configdir)/session.d
- $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/services
- $(mkinstalldirs) $(DESTDIR)$(datadir)/dbus-1/system-services
- # Install dbus.socket as default implementation of a D-Bus stack.
-
---- dbus-1.6.4/tools/Makefile.in 2013-09-11 16:10:31.000000000 +0200
-+++ dbus-1.6.4/tools/Makefile.in 2013-09-11 16:10:32.000000000 +0200
-@@ -757,11 +757,6 @@ uninstall-am: uninstall-binPROGRAMS
-
-
- # create the /var/lib/dbus directory for dbus-uuidgen
--install-data-local:
-- $(MKDIR_P) $(DESTDIR)$(localstatedir)/lib/dbus
--
--installcheck-local:
-- test -d $(DESTDIR)$(localstatedir)/lib/dbus
-
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gnu/packages/patches/eudev-rules-directory.patch b/gnu/packages/patches/eudev-rules-directory.patch
index 9173e22f76..54fc01c6d5 100644
--- a/gnu/packages/patches/eudev-rules-directory.patch
+++ b/gnu/packages/patches/eudev-rules-directory.patch
@@ -4,9 +4,9 @@ The old udev 182 supported $UDEV_CONFIG_FILE, which in turn allowed
the search path to be customized, but eudev no longer has this, hence
this hack.
---- eudev-1.9/src/udev/udev-rules.c 2014-09-13 10:21:59.615980259 +0200
-+++ eudev-1.9/src/udev/udev-rules.c 2014-09-13 10:24:13.839976335 +0200
-@@ -46,15 +46,11 @@
+--- eudev-3.1.5/src/udev/udev-rules.c 2015-10-13 06:22:14.000000000 +0800
++++ eudev-3.1.5/src/udev/udev-rules.c 2015-10-16 20:45:38.491934336 +0800
+@@ -47,15 +47,11 @@
};
};
@@ -14,23 +14,23 @@ this hack.
+static const char* rules_dirs[] = {
UDEV_CONF_DIR "/rules.d",
UDEV_RULES_DIR,
-- "/run/udev/rules.d",
+- UDEV_ROOT_RUN "/udev/rules.d",
UDEV_LIBEXEC_DIR "/rules.d",
-#ifdef HAVE_SPLIT_USR
- "/lib/udev/rules.d",
- "/usr/lib/udev/rules.d",
-#endif
-+ NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */
++ NULL, /* placeholder for $EUDEV_RULES_DIRECTORY */
NULL};
struct udev_rules {
-@@ -1637,6 +1633,9 @@
+@@ -1704,6 +1700,9 @@
udev_rules_check_timestamp(rules);
-+ /* Allow the user to specify an additional rules directory. */
-+ rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY");
++ /* Allow the user to specify an additional rules directory. */
++ rules_dirs[3] = getenv("EUDEV_RULES_DIRECTORY");
+
r = conf_files_list_strv(&files, ".rules", NULL, rules_dirs);
if (r < 0) {
- log_error("failed to enumerate rules files: %s", strerror(-r));
+ log_error_errno(r, "failed to enumerate rules files: %m");
diff --git a/gnu/packages/patches/glib-tests-desktop.patch b/gnu/packages/patches/glib-tests-desktop.patch
index 61f48607f7..642234ebbc 100644
--- a/gnu/packages/patches/glib-tests-desktop.patch
+++ b/gnu/packages/patches/glib-tests-desktop.patch
@@ -56,11 +56,12 @@ database, the `update-desktop-database' program, which we don't provide.
-----------------------------
The hunk below removes tests that depend on `gdbus-testserver.py',
-because that script depends on python-gobject.
+because that script depends on python-gobject. The second hunk
+disables a test that expects /etc/machine-id in the build environment.
---- glib-2.39.1/gio/tests/Makefile.in 2014-01-20 00:18:16.000000000 +0100
-+++ glib-2.39.1/gio/tests/Makefile.in 2014-01-20 00:18:47.000000000 +0100
-@@ -171,20 +171,13 @@ check_PROGRAMS = $(am__EXEEXT_14)
+--- glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:11:00.928809504 +0200
++++ glib-2.46.0/gio/tests/Makefile.in 2015-10-14 14:12:13.157291092 +0200
+@@ -186,20 +186,13 @@ check_PROGRAMS = $(am__EXEEXT_16)
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-auth \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-bz627724 \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-close-pending \
@@ -79,7 +80,16 @@ because that script depends on python-gobject.
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-test-codegen-old \
-@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gdbus-threading \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gmenumodel \
+ @HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ gnotification \
@HAVE_DBUS_DAEMON_TRUE@@OS_UNIX_TRUE@ $(NULL)
+@@ -321,8 +314,7 @@ libresourceplugin_la_LINK = $(LIBTOOL) $
+ am__EXEEXT_1 =
+ @OS_UNIX_TRUE@am__EXEEXT_2 = contenttype$(EXEEXT) file$(EXEEXT) \
+ @OS_UNIX_TRUE@ gdbus-peer-object-manager$(EXEEXT) \
+-@OS_UNIX_TRUE@ gdbus-unix-addresses$(EXEEXT) \
+ @OS_UNIX_TRUE@ live-g-file$(EXEEXT) socket-address$(EXEEXT) \
+ @OS_UNIX_TRUE@ stream-rw_all$(EXEEXT) unix-fd$(EXEEXT) \
+ @OS_UNIX_TRUE@ unix-streams$(EXEEXT) $(am__EXEEXT_1) \
The test below depends on the availability /etc/passwd to dbus-daemon.
diff --git a/gnu/packages/patches/guitarix-c++11.patch b/gnu/packages/patches/guitarix-c++11.patch
new file mode 100644
index 0000000000..599855a223
--- /dev/null
+++ b/gnu/packages/patches/guitarix-c++11.patch
@@ -0,0 +1,297 @@
+Work around a C++11 incompatibility when compiling the gperf-generated
+'jsonrpc_methods.cc' with -std=c++11:
+
+ default/src/gx_head/engine/jsonrpc_methods.cc: In function ‘const CmdConnection::methodnames* in_word_set(const char*, unsigned int)’:
+ default/src/gx_head/engine/jsonrpc_methods.cc:211:26: error: reference to ‘hash’ is ambiguous
+ register int key = hash (str, len);
+ ^
+The solution is to run 'gperf -L C++' so that it generates code with
+appropriate C++ name-spacing to avoid the ambiguity.
+
+--- guitarix-0.33.0/tools/make_jsonrpc_methods 2015-10-31 12:45:52.756587435 +0100
++++ guitarix-0.33.0/tools/make_jsonrpc_methods 2015-10-31 12:47:02.801103366 +0100
+@@ -14,7 +14,7 @@ def add_enums(template_name, hashtable_n
+ hashtable = open(hashtable_name, "w")
+ hashtable.write(headline)
+ hashtable.flush()
+- gperf = Popen(gperf_program, stdin=PIPE, stdout=hashtable)
++ gperf = Popen([gperf_program, "-L", "C++"], stdin=PIPE, stdout=hashtable)
+ enumlist = []
+ section = 0
+ in_comment = False
+
+--- guitarix-0.33.0/src/gx_head/engine/jsonrpc.cpp 2015-10-31 12:50:33.934647842 +0100
++++ guitarix-0.33.0/src/gx_head/engine/jsonrpc.cpp 2015-10-31 12:50:51.238773730 +0100
+@@ -1171,7 +1171,7 @@ bool CmdConnection::request(gx_system::J
+ }
+ }
+ jp.next(gx_system::JsonParser::end_object);
+- const methodnames *p = in_word_set(method.c_str(), method.size());
++ const methodnames *p = Perfect_Hash::in_word_set(method.c_str(), method.size());
+ if (!p) {
+ throw RpcError(-32601, Glib::ustring::compose("Method not found -- '%1'", method));
+ }
+
+
+The following part is adapted from an upstream patch for the new libsigc++.
+
+commit 001aa683814a7bf4537882c7c3acf1dafd851cd5
+Author: Hermann Meyer <brummer-@web.de>
+Date: Sat Oct 31 09:33:16 2015 +0100
+
+ * fix libsigc++ removes sigc::group
+
+diff --git a/src/gx_head/gui/avahi_discover.cpp b/src/gx_head/gui/avahi_discover.cpp
+index c49746e..88993c2 100644
+--- a/src/gx_head/gui/avahi_discover.cpp
++++ b/src/gx_head/gui/avahi_discover.cpp
+@@ -193,7 +193,9 @@ SelectInstance::SelectInstance(gx_system::CmdlineOptions& options, Gtk::Window *
+ win->signal_response().connect(sigc::mem_fun(this, &SelectInstance::on_response));
+ bld->get_widget("treeview", view);
+ view->signal_row_activated().connect(
+- sigc::group(sigc::mem_fun(win, &Gtk::Dialog::response), 1));
++ sigc::mem_fun(this,&SelectInstance::on_row));
++ //view->signal_row_activated().connect(
++ //sigc::group(sigc::mem_fun(win, &Gtk::Dialog::response), 1));
+ view->set_model(Gtk::ListStore::create(cols));
+ view->get_selection()->set_mode(Gtk::SELECTION_BROWSE);
+ view->get_selection()->signal_changed().connect(
+@@ -242,6 +244,10 @@ void SelectInstance::on_avahi_changed() {
+ }
+ }
+
++void SelectInstance::on_row(const Gtk::TreePath& path, Gtk::TreeViewColumn* column) {
++ on_response(1);
++}
++
+ void SelectInstance::on_response(int response_id) {
+ if (response_id == 1) {
+ Gtk::TreeIter i = view->get_selection()->get_selected();
+diff --git a/src/gx_head/gui/gx_main.cpp b/src/gx_head/gui/gx_main.cpp
+index d1ad329..a207aa6 100644
+--- a/src/gx_head/gui/gx_main.cpp
++++ b/src/gx_head/gui/gx_main.cpp
+@@ -281,8 +281,10 @@ void ErrorPopup::show_msg() {
+ align->set_padding(50,20,0,10);
+ Gtk::VBox *vbox = dynamic_cast<Gtk::VBox *>(dialog->get_child());
+ vbox->set_redraw_on_allocate(true);
+- vbox->signal_expose_event().connect(
+- sigc::group(&gx_cairo::error_box_expose,GTK_WIDGET(vbox->gobj()),sigc::_1,(void*)0),false);
++ g_signal_connect(GTK_WIDGET(vbox->gobj()), "expose-event",
++ G_CALLBACK(gx_cairo::error_box_expose), NULL);
++ // vbox->signal_expose_event().connect(
++ //sigc::group(&gx_cairo::error_box_expose,GTK_WIDGET(vbox->gobj()),sigc::_1,(void*)0),false);
+ dialog->set_title(_("GUITARIX ERROR"));
+ dialog->signal_response().connect(
+ sigc::mem_fun(*this, &ErrorPopup::on_response));
+@@ -306,9 +308,11 @@ GxSplashBox::GxSplashBox()
+ : Gtk::Window(Gtk::WINDOW_POPUP) {
+ set_redraw_on_allocate(true);
+ set_app_paintable();
+- signal_expose_event().connect(
+- sigc::group(&gx_cairo::splash_expose, GTK_WIDGET(gobj()),
+- sigc::_1, (void*)0), false);
++ g_signal_connect(GTK_WIDGET(gobj()), "expose-event",
++ G_CALLBACK(gx_cairo::splash_expose), NULL);
++ //signal_expose_event().connect(
++ // sigc::group(&gx_cairo::splash_expose, GTK_WIDGET(gobj()),
++ // sigc::_1, (void*)0), false);
+ set_decorated(false);
+ set_type_hint(Gdk::WINDOW_TYPE_HINT_SPLASHSCREEN);
+ set_position(Gtk::WIN_POS_CENTER );
+diff --git a/src/gx_head/gui/gx_main_window.cpp b/src/gx_head/gui/gx_main_window.cpp
+index 23c9ae6..eb0e201 100644
+--- a/src/gx_head/gui/gx_main_window.cpp
++++ b/src/gx_head/gui/gx_main_window.cpp
+@@ -1303,6 +1303,23 @@ void MainWindow::on_log_activate() {
+ fLoggingWindow.hide();
+ }
+ }
++// show loggingbox
++bool MainWindow::on_log_activated(GdkEventButton* ev) {
++ if (ev->type == GDK_BUTTON_PRESS && ev->button == 1) {
++ if (!actions.loggingbox->get_active()) {
++ actions.loggingbox->set_active(true);
++ gint rxorg, ryorg;
++ window->get_position(rxorg, ryorg);
++ fLoggingWindow.move(rxorg+5, ryorg+272);
++ fLoggingWindow.show_all();
++ on_msg_level_changed();
++ } else {
++ fLoggingWindow.hide();
++ actions.loggingbox->set_active(false);
++ }
++ }
++ return true;
++}
+
+ void MainWindow::on_engine_toggled() {
+ gx_engine::GxEngineState s;
+@@ -2119,6 +2136,14 @@ bool MainWindow::on_toggle_mute(GdkEventButton* ev) {
+ return true;
+ }
+
++bool MainWindow::on_jackserverconnection(GdkEventButton* ev) {
++ if (ev->type == GDK_BUTTON_PRESS && ev->button == 1) {
++ bool v = actions.jackserverconnection->get_active();
++ actions.jackserverconnection->set_active(!v);
++ }
++ return true;
++}
++
+ void MainWindow::on_msg_level_changed() {
+ switch (fLoggingWindow.get_unseen_msg_level()) {
+ case GxLogger::kWarning: logstate_image->set(pixbuf_log_yellow); break;
+@@ -2683,12 +2708,14 @@ MainWindow::MainWindow(gx_engine::GxMachineBase& machine_, gx_system::CmdlineOpt
+ */
+ if (jack) {
+ jackd_image->set(pixbuf_jack_disconnected);
+- jackd_image->get_parent()->signal_button_press_event().connect(
+- sigc::bind_return(
+- sigc::group(
+- sigc::ptr_fun(toggle_action),
+- actions.jackserverconnection),
+- true));
++ jackd_image->get_parent()->signal_button_press_event().connect(
++ sigc::mem_fun(*this, &MainWindow::on_jackserverconnection));
++ //jackd_image->get_parent()->signal_button_press_event().connect(
++ // sigc::bind_return(
++ // sigc::group(
++ // sigc::ptr_fun(toggle_action),
++ // actions.jackserverconnection),
++ // true));
+ } else {
+ jackd_image->hide();
+ }
+@@ -2823,11 +2850,14 @@ MainWindow::MainWindow(gx_engine::GxMachineBase& machine_, gx_system::CmdlineOpt
+ false));
+ on_msg_level_changed();
+ logstate_image->get_parent()->signal_button_press_event().connect(
+- sigc::bind_return(
+- sigc::group(
+- sigc::ptr_fun(toggle_action),
+- actions.loggingbox),
+- true));
++ sigc::mem_fun(*this, &MainWindow::on_log_activated));
++
++ //logstate_image->get_parent()->signal_button_press_event().connect(
++ //sigc::bind_return(
++ // sigc::group(
++ // sigc::ptr_fun(toggle_action),
++ // actions.loggingbox),
++ // true));
+
+ /*
+ ** load plugin definitions into plugin_dict, add to effects_toolpalette
+diff --git a/src/gx_head/gui/gx_portmap.cpp b/src/gx_head/gui/gx_portmap.cpp
+index d8a6ae6..e711ee7 100644
+--- a/src/gx_head/gui/gx_portmap.cpp
++++ b/src/gx_head/gui/gx_portmap.cpp
+@@ -578,12 +578,16 @@ PortMapWindow::PortMapWindow(Glib::RefPtr<gx_gui::GxBuilder> bld, gx_jack::GxJac
+ b->set_name("rack_button");
+ Gtk::VBox *vbox1;
+ bld->find_widget("dialog-vbox1", vbox1);
+- vbox1->signal_expose_event().connect(
+- sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox1->gobj()),sigc::_1,(void*)0),false);
++ g_signal_connect(GTK_WIDGET(vbox1->gobj()), "expose-event",
++ G_CALLBACK(gx_cairo::rectangle_skin_color_expose), NULL);
++ // vbox1->signal_expose_event().connect(
++ //sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox1->gobj()),sigc::_1,(void*)0),false);
+ Gtk::VBox *vbox2;
+ bld->find_widget("dialog-vbox2", vbox2);
+- vbox2->signal_expose_event().connect(
+- sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox2->gobj()),sigc::_1,(void*)0),false);
++ g_signal_connect(GTK_WIDGET(vbox2->gobj()), "expose-event",
++ G_CALLBACK(gx_cairo::rectangle_skin_color_expose), NULL);
++ // vbox2->signal_expose_event().connect(
++// sigc::group(&gx_cairo::rectangle_skin_color_expose,GTK_WIDGET(vbox2->gobj()),sigc::_1,(void*)0),false);
+ vbox1->set_redraw_on_allocate(true);
+ vbox2->set_redraw_on_allocate(true);
+ for (int i = 0; i < number_of_ports; ++i) {
+diff --git a/src/headers/avahi_discover.h b/src/headers/avahi_discover.h
+index 5af5949..b6f523a 100644
+--- a/src/headers/avahi_discover.h
++++ b/src/headers/avahi_discover.h
+@@ -91,6 +91,7 @@ private:
+ } cols;
+ private:
+ void on_response(int response_id);
++ void on_row(const Gtk::TreePath& path, Gtk::TreeViewColumn* column);
+ void on_avahi_changed();
+ void on_selection_changed();
+ public:
+diff --git a/src/headers/gx_main_window.h b/src/headers/gx_main_window.h
+index 3b54285..e7c02ce 100644
+--- a/src/headers/gx_main_window.h
++++ b/src/headers/gx_main_window.h
+@@ -720,6 +720,7 @@ private:
+ void on_load_ladspa();
+ void delete_select_jack_control();
+ void on_log_activate();
++ bool on_log_activated(GdkEventButton* ev);
+ void do_program_change(int pgm);
+ void on_engine_toggled();
+ void on_engine_state_change(gx_engine::GxEngineState state);
+@@ -728,6 +729,7 @@ private:
+ void setup_tuner_temperament(Gxw::RackTuner& tuner);
+ void setup_tuner(Gxw::RackTuner& tuner);
+ bool on_toggle_mute(GdkEventButton* ev);
++ bool on_jackserverconnection(GdkEventButton* ev);
+ void on_msg_level_changed();
+ void on_ampdetail_switch(bool compress, bool setparam);
+ void on_show_oscilloscope(bool v);
+
+The following is adapted from this upstream patch, which does a whole
+bunch of unrelated things.
+
+commit 44ab541a5a846c0b3832f4225d1ae92183d55550
+Author: Hermann Meyer <brummer-@web.de>
+Date: Fri Oct 30 08:47:42 2015 +0100
+
+ * add 53 tet tuner option
+ * add online preset download widget (requiers libwebkit-1.0
+ * fix bug #27
+ * fix build fail with c++11 system libs (make c++11 default)
+
+--- a/src/LV2/gx_amp.lv2/gxamp_gui.cpp
++++ b/src/LV2/gx_amp.lv2/gxamp_gui.cpp
+@@ -124,7 +124,7 @@ void GXPluginGUI::set_skin()
+ gtk_rc_parse_string (toparse.c_str());
+ }
+
+-inline std::string to_string(long long _Val)
++inline std::string t_string(long long _Val)
+ { // convert int to string
+ char _Buf[128];
+ sprintf(_Buf, "%lld", _Val);
+@@ -136,7 +136,7 @@ void GXPluginGUI::set_plug_name()
+ // Here the plugin should have different name for different amp.....
+ addKnob = "";
+ plugskin = "amp21.png";
+- plug_name = "GUITARIXLV2" + to_string(reinterpret_cast<long long>(this));
++ plug_name = "GUITARIXLV2" + t_string(reinterpret_cast<long long>(this));
+ //fprintf(stderr,"%s",plug_name.c_str());
+ }
+
+diff --git a/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp b/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp
+index d5947ee..edc1caa 100644
+--- a/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp
++++ b/src/LV2/gx_amp_stereo.lv2/gxamp_stereo_gui.cpp
+@@ -124,7 +124,7 @@ void GXPluginGUI::set_skin()
+ gtk_rc_parse_string (toparse.c_str());
+ }
+
+-inline std::string to_string(long long _Val)
++inline std::string t_string(long long _Val)
+ { // convert int to string
+ char _Buf[128];
+ sprintf(_Buf, "%lld", _Val);
+@@ -135,7 +135,7 @@ void GXPluginGUI::set_plug_name()
+ {
+ addKnob = "";
+ plugskin = "amp21.png";
+- plug_name = "GUITARIXLV2" + to_string(reinterpret_cast<long long>(this));
++ plug_name = "GUITARIXLV2" + t_string(reinterpret_cast<long long>(this));
+ }
+
+ GtkWidget* GXPluginGUI::make_gui()
diff --git a/gnu/packages/patches/libdrm-symbol-check.patch b/gnu/packages/patches/libdrm-symbol-check.patch
new file mode 100644
index 0000000000..676024beb4
--- /dev/null
+++ b/gnu/packages/patches/libdrm-symbol-check.patch
@@ -0,0 +1,195 @@
+Augment the list of expected symbols to fix the symbol-check tests on
+mips64el-linux and armhf-linux.
+
+--- libdrm-2.4.65/freedreno/freedreno-symbol-check.orig 2015-09-04 11:07:40.000000000 -0400
++++ libdrm-2.4.65/freedreno/freedreno-symbol-check 2015-10-18 23:57:15.288416229 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.sources/LIBDRM_FREEDRENO_H_FILES
+
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_freedreno.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ fd_bo_cpu_fini
+ fd_bo_cpu_prep
+ fd_bo_del
+--- libdrm-2.4.65/nouveau/nouveau-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/nouveau/nouveau-symbol-check 2015-10-18 23:55:26.078327118 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.sources/LIBDRM_NOUVEAU_H_FILES
+
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_nouveau.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ nouveau_bo_map
+ nouveau_bo_name_get
+ nouveau_bo_name_ref
+--- libdrm-2.4.65/libkms/kms-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/libkms/kms-symbol-check 2015-10-18 23:46:10.683869471 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.sources/LIBKMS_H_FILES
+
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libkms.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ kms_bo_create
+ kms_bo_destroy
+ kms_bo_get_prop
+--- libdrm-2.4.65/intel/intel-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/intel/intel-symbol-check 2015-10-18 23:55:53.309558508 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.sources/LIBDRM_INTEL_H_FILES
+
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_intel.so} | awk '{print $3}' | while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ drm_intel_bo_alloc
+ drm_intel_bo_alloc_for_render
+ drm_intel_bo_alloc_tiled
+--- libdrm-2.4.65/amdgpu/amdgpu-symbol-check.orig 2015-08-17 10:08:11.000000000 -0400
++++ libdrm-2.4.65/amdgpu/amdgpu-symbol-check 2015-10-18 23:56:10.606917723 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.am/libdrm_amdgpuinclude_HEADERS
+
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_amdgpu.so} | awk '{print $3}' | while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ amdgpu_bo_alloc
+ amdgpu_bo_cpu_map
+ amdgpu_bo_cpu_unmap
+--- libdrm-2.4.65/exynos/exynos-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/exynos/exynos-symbol-check 2015-10-18 23:56:32.025486153 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.am/libdrm_exynos*_HEADERS
+
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_exynos.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ exynos_bo_create
+ exynos_bo_destroy
+ exynos_bo_from_name
+--- libdrm-2.4.65/omap/omap-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/omap/omap-symbol-check 2015-10-18 23:56:44.834438626 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.am/libdrm_omap*HEADERS
+
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_omap.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ omap_bo_cpu_fini
+ omap_bo_cpu_prep
+ omap_bo_del
+--- libdrm-2.4.65/tegra/tegra-symbol-check.orig 2015-05-04 11:47:43.000000000 -0400
++++ libdrm-2.4.65/tegra/tegra-symbol-check 2015-10-18 23:57:00.756759698 -0400
+@@ -1,6 +1,6 @@
+ #!/bin/bash
+
+-# The following symbols (past the first five) are taken from the public headers.
++# The following symbols (past the first 12) are taken from the public headers.
+ # A list of the latter should be available Makefile.sources/LIBDRM_FREEDRENO_H_FILES
+
+ FUNCS=$(nm -D --format=bsd --defined-only ${1-.libs/libdrm_tegra.so} | awk '{print $3}'| while read func; do
+@@ -10,6 +10,13 @@
+ _end
+ _fini
+ _init
++_fbss
++_fdata
++_ftext
++__bss_start__
++__bss_end__
++_bss_end__
++__end__
+ drm_tegra_bo_get_flags
+ drm_tegra_bo_get_handle
+ drm_tegra_bo_get_tiling
diff --git a/gnu/packages/patches/librsvg-tests.patch b/gnu/packages/patches/librsvg-tests.patch
new file mode 100644
index 0000000000..dc5b94e185
--- /dev/null
+++ b/gnu/packages/patches/librsvg-tests.patch
@@ -0,0 +1,27 @@
+From e06fc71a57156123e4e50a39957100a651ab632b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= <iyzsong@gmail.com>
+Date: Sat, 17 Oct 2015 10:20:33 +0800
+Subject: [PATCH] tests/styles: Don't duplicate test names.
+
+---
+ tests/styles.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/styles.c b/tests/styles.c
+index d09b1f2..a938835 100644
+--- a/tests/styles.c
++++ b/tests/styles.c
+@@ -97,8 +97,8 @@ static const FixtureData fixtures[] =
+ {"/styles/selectors/2 or more selectors (stroke)", "592207", "styles/bug592207.svg", "#target", "stroke", .expected.color = 0xff0000ff},
+ {"/styles/svg-element-style", "615701", "styles/svg-class.svg", "#svg", "fill", .expected.color = 0xff0000ff},
+ {"/styles/presentation attribute in svg element", "620693", "styles/bug620693.svg", "#svg", "stroke", .expected.color = 0xffff0000},
+- {"/styles/!important", "379629", "styles/bug379629.svg", "#base_shadow", "stroke", .expected.color = 0xffffc0cb /* pink */},
+- {"/styles/!important", "379629", "styles/bug379629.svg", "#base_shadow", "stroke-width", .expected.length = {POINTS_LENGTH(5.), 'i'}},
++ {"/styles/!important/1", "379629", "styles/bug379629.svg", "#base_shadow", "stroke", .expected.color = 0xffffc0cb /* pink */},
++ {"/styles/!important/2", "379629", "styles/bug379629.svg", "#base_shadow", "stroke-width", .expected.length = {POINTS_LENGTH(5.), 'i'}},
+ {"/styles/!important/class", "614606", "styles/bug614606.svg", "#path6306", "fill", .expected.color = 0xffff0000 /* red */ },
+ {"/styles/!important/element", "614606", "styles/bug614606.svg", "#path6308", "fill", .expected.color = 0xff000000},
+ {"/styles/!important/#id prior than class", NULL, "styles/important.svg", "#red", "fill", .expected.color = 0xffff0000 },
+--
+2.5.0
+
diff --git a/gnu/packages/patches/unzip-CVE-2015-7696.patch b/gnu/packages/patches/unzip-CVE-2015-7696.patch
new file mode 100644
index 0000000000..d6a4072673
--- /dev/null
+++ b/gnu/packages/patches/unzip-CVE-2015-7696.patch
@@ -0,0 +1,35 @@
+Copied from Debian.
+
+From: Petr Stodulka <pstodulk@redhat.com>
+Date: Mon, 14 Sep 2015 18:23:17 +0200
+Subject: Upstream fix for heap overflow
+Bug-Debian: https://bugs.debian.org/802162
+Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1260944
+Origin: https://bugzilla.redhat.com/attachment.cgi?id=1073002
+Forwarded: yes
+
+---
+ crypt.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+--- a/crypt.c
++++ b/crypt.c
+@@ -465,7 +465,17 @@
+ GLOBAL(pInfo->encrypted) = FALSE;
+ defer_leftover_input(__G);
+ for (n = 0; n < RAND_HEAD_LEN; n++) {
+- b = NEXTBYTE;
++ /* 2012-11-23 SMS. (OUSPG report.)
++ * Quit early if compressed size < HEAD_LEN. The resulting
++ * error message ("unable to get password") could be improved,
++ * but it's better than trying to read nonexistent data, and
++ * then continuing with a negative G.csize. (See
++ * fileio.c:readbyte()).
++ */
++ if ((b = NEXTBYTE) == (ush)EOF)
++ {
++ return PK_ERR;
++ }
+ h[n] = (uch)b;
+ Trace((stdout, " (%02x)", h[n]));
+ }
diff --git a/gnu/packages/patches/unzip-CVE-2015-7697.patch b/gnu/packages/patches/unzip-CVE-2015-7697.patch
new file mode 100644
index 0000000000..d688b42495
--- /dev/null
+++ b/gnu/packages/patches/unzip-CVE-2015-7697.patch
@@ -0,0 +1,28 @@
+Copied from Debian.
+
+From: Kamil Dudka <kdudka@redhat.com>
+Date: Mon, 14 Sep 2015 18:24:56 +0200
+Subject: fix infinite loop when extracting empty bzip2 data
+Bug-Debian: https://bugs.debian.org/802160
+Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1260944
+Origin: other, https://bugzilla.redhat.com/attachment.cgi?id=1073339
+
+---
+ extract.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/extract.c
++++ b/extract.c
+@@ -2728,6 +2728,12 @@
+ int repeated_buf_err;
+ bz_stream bstrm;
+
++ if (G.incnt <= 0 && G.csize <= 0L) {
++ /* avoid an infinite loop */
++ Trace((stderr, "UZbunzip2() got empty input\n"));
++ return 2;
++ }
++
+ #if (defined(DLL) && !defined(NO_SLIDE_REDIR))
+ if (G.redirect_slide)
+ wsize = G.redirect_size, redirSlide = G.redirect_buffer;
diff --git a/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch b/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch
deleted file mode 100644
index 33498db95e..0000000000
--- a/gnu/packages/patches/unzip-fix-overflows-and-infloop.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-Copied from Fedora.
-
-http://pkgs.fedoraproject.org/cgit/unzip.git/tree/unzip-6.0-heap-overflow-infloop.patch?id=d18f821e
-
-From bdd4a0cecd745cb4825e4508b5bdf2579731086a Mon Sep 17 00:00:00 2001
-From: Petr Stodulka <pstodulk@redhat.com>
-Date: Mon, 14 Sep 2015 18:23:17 +0200
-Subject: [PATCH 1/3] upstream fix for heap overflow
-
-https://bugzilla.redhat.com/attachment.cgi?id=1073002
----
- crypt.c | 12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/crypt.c b/crypt.c
-index 784e411..a8975f2 100644
---- a/crypt.c
-+++ b/crypt.c
-@@ -465,7 +465,17 @@ int decrypt(__G__ passwrd)
- GLOBAL(pInfo->encrypted) = FALSE;
- defer_leftover_input(__G);
- for (n = 0; n < RAND_HEAD_LEN; n++) {
-- b = NEXTBYTE;
-+ /* 2012-11-23 SMS. (OUSPG report.)
-+ * Quit early if compressed size < HEAD_LEN. The resulting
-+ * error message ("unable to get password") could be improved,
-+ * but it's better than trying to read nonexistent data, and
-+ * then continuing with a negative G.csize. (See
-+ * fileio.c:readbyte()).
-+ */
-+ if ((b = NEXTBYTE) == (ush)EOF)
-+ {
-+ return PK_ERR;
-+ }
- h[n] = (uch)b;
- Trace((stdout, " (%02x)", h[n]));
- }
---
-2.4.6
-
-
-From 4b48844661ff9569f2ecf582a387d46a5775b5d8 Mon Sep 17 00:00:00 2001
-From: Kamil Dudka <kdudka@redhat.com>
-Date: Mon, 14 Sep 2015 18:24:56 +0200
-Subject: [PATCH 2/3] fix infinite loop when extracting empty bzip2 data
-
-Bug: https://sourceforge.net/p/infozip/patches/23/
----
- extract.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/extract.c b/extract.c
-index 7134bfe..29db027 100644
---- a/extract.c
-+++ b/extract.c
-@@ -2733,6 +2733,12 @@ __GDEF
- int repeated_buf_err;
- bz_stream bstrm;
-
-+ if (G.incnt <= 0 && G.csize <= 0L) {
-+ /* avoid an infinite loop */
-+ Trace((stderr, "UZbunzip2() got empty input\n"));
-+ return 2;
-+ }
-+
- #if (defined(DLL) && !defined(NO_SLIDE_REDIR))
- if (G.redirect_slide)
- wsize = G.redirect_size, redirSlide = G.redirect_buffer;
---
-2.4.6
-
-
-From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001
-From: Kamil Dudka <kdudka@redhat.com>
-Date: Tue, 22 Sep 2015 18:52:23 +0200
-Subject: [PATCH 3/3] extract: prevent unsigned overflow on invalid input
-
-Suggested-by: Stefan Cornelius
----
- extract.c | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/extract.c b/extract.c
-index 29db027..b9ae667 100644
---- a/extract.c
-+++ b/extract.c
-@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk,
- if (G.lrec.compression_method == STORED) {
- zusz_t csiz_decrypted = G.lrec.csize;
-
-- if (G.pInfo->encrypted)
-+ if (G.pInfo->encrypted) {
-+ if (csiz_decrypted <= 12) {
-+ /* handle the error now to prevent unsigned overflow */
-+ Info(slide, 0x401, ((char *)slide,
-+ LoadFarStringSmall(ErrUnzipNoFile),
-+ LoadFarString(InvalidComprData),
-+ LoadFarStringSmall2(Inflate)));
-+ return PK_ERR;
-+ }
- csiz_decrypted -= 12;
-+ }
- if (G.lrec.ucsize != csiz_decrypted) {
- Info(slide, 0x401, ((char *)slide,
- LoadFarStringSmall2(WrnStorUCSizCSizDiff),
---
-2.5.2
-
diff --git a/gnu/packages/patches/unzip-overflow-on-invalid-input.patch b/gnu/packages/patches/unzip-overflow-on-invalid-input.patch
new file mode 100644
index 0000000000..013002a88c
--- /dev/null
+++ b/gnu/packages/patches/unzip-overflow-on-invalid-input.patch
@@ -0,0 +1,40 @@
+Extracted from a patch in Fedora.
+
+http://pkgs.fedoraproject.org/cgit/unzip.git/tree/unzip-6.0-heap-overflow-infloop.patch?id=d18f821e
+
+From bd150334fb4084f5555a6be26b015a0671cb5b74 Mon Sep 17 00:00:00 2001
+From: Kamil Dudka <kdudka@redhat.com>
+Date: Tue, 22 Sep 2015 18:52:23 +0200
+Subject: [PATCH 3/3] extract: prevent unsigned overflow on invalid input
+
+Suggested-by: Stefan Cornelius
+---
+ extract.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/extract.c b/extract.c
+index 29db027..b9ae667 100644
+--- a/extract.c
++++ b/extract.c
+@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G__ numchunk,
+ if (G.lrec.compression_method == STORED) {
+ zusz_t csiz_decrypted = G.lrec.csize;
+
+- if (G.pInfo->encrypted)
++ if (G.pInfo->encrypted) {
++ if (csiz_decrypted <= 12) {
++ /* handle the error now to prevent unsigned overflow */
++ Info(slide, 0x401, ((char *)slide,
++ LoadFarStringSmall(ErrUnzipNoFile),
++ LoadFarString(InvalidComprData),
++ LoadFarStringSmall2(Inflate)));
++ return PK_ERR;
++ }
+ csiz_decrypted -= 12;
++ }
+ if (G.lrec.ucsize != csiz_decrypted) {
+ Info(slide, 0x401, ((char *)slide,
+ LoadFarStringSmall2(WrnStorUCSizCSizDiff),
+--
+2.5.2
+