Debian

Available patches from Ubuntu

To see Ubuntu differences wrt. to Debian, write down a grep-dctrl query identifying the packages you're interested in:
grep-dctrl -n -sPackage Sources.Debian
(e.g. -FPackage linux-ntfs or linux-ntfs)

Modified packages are listed below:

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: dkms

dkms (2.7.1-1ubuntu2) eoan; urgency=medium * debian/dkms-autopkgtest: skip testing when package is disabled from building by a BUILD_EXCLUSIVE directive. -- Seth Forshee <seth.forshee@canonical.com> Fri, 19 Jul 2019 13:35:46 -0500 dkms (2.7.1-1ubuntu1) eoan; urgency=medium * Merge from Debian unstable. Remaining changes: - break shim-signed - Fix support for OBSOLETE_BY in DKMS.CONF - Do not invoke dkms_autoinstaller from /etc/kernel/header_postinst.d/dkms -- Gianfranco Costamagna <locutusofborg@debian.org> Tue, 02 Jul 2019 09:43:59 +0200

Modifications :
  1. Download patch debian/patches/0017-fix-OBSOLETE_BY-in-DKMS.CONF-Closes-81.patch

    --- 2.7.1-1/debian/patches/0017-fix-OBSOLETE_BY-in-DKMS.CONF-Closes-81.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.7.1-1ubuntu2/debian/patches/0017-fix-OBSOLETE_BY-in-DKMS.CONF-Closes-81.patch 2019-06-25 09:16:05.000000000 +0000 @@ -0,0 +1,41 @@ +From 7a51d5656f8c209279e9013ab168404c71fce1e5 Mon Sep 17 00:00:00 2001 +From: Alex Tu <alex.tu@canonical.com> +Date: Mon, 13 May 2019 14:53:16 +0800 +Subject: [PATCH] fix: OBSOLETE_BY in DKMS.CONF (Closes #81) + +cherry-pick from alextu/closes81-OBSOLETE_BY (4dbf35e) + Conflicts: + dkms +--- + dkms | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +Index: dkms-2.6.1/dkms +=================================================================== +--- dkms-2.6.1.orig/dkms ++++ dkms-2.6.1/dkms +@@ -774,9 +774,7 @@ check_version_sanity() + echo $"Running module version sanity check." + local i=0 + local -a kernels_info dkms_info +- set_module_suffix +- read -a kernels_module < <(find_module "$lib_tree" "${4}") +- if [ -z $kernels_module ]; then ++ if [ -n $3 ]; then + # Magic split into array syntax saves trivial awk and cut calls. + local -a obs=(${3//-/ }) + local -a my=(${1//-/ }) +@@ -807,10 +805,11 @@ check_version_sanity() + echo $"for future kernels above $3." >&2 + echo $"You may override by specifying --force." >&2 + return 1 +- else +- return 0 + fi + fi ++ set_module_suffix ++ read -a kernels_module < <(find_module "$lib_tree" "${4}") ++ [ -z $kernels_module ] || return 0 + + if [[ ${kernels_module[1]} ]]; then + warn $"Warning! Cannot do version sanity checking because multiple ${4}$module_suffix" \
  2. Download patch debian/control

    --- 2.7.1-1/debian/control 2019-06-25 09:09:04.000000000 +0000 +++ 2.7.1-1ubuntu2/debian/control 2019-06-25 09:16:05.000000000 +0000 @@ -27,7 +27,7 @@ Recommends: fakeroot, linux-headers-686-pae | linux-headers-amd64 | linux-headers-generic | linux-headers, lsb-release Suggests: python3-apport, menu -#Breaks: shim-signed (<< 1.34~) +Breaks: shim-signed (<< 1.34~) Description: Dynamic Kernel Module Support Framework DKMS is a framework designed to allow individual kernel modules to be upgraded without changing the whole kernel. It is also very easy to rebuild modules as
  3. Download patch debian/patches/series

    --- 2.7.1-1/debian/patches/series 2019-06-25 09:00:42.000000000 +0000 +++ 2.7.1-1ubuntu2/debian/patches/series 2019-06-25 09:16:21.000000000 +0000 @@ -5,3 +5,5 @@ 0008-Don-t-assume-boot-config-exists-test-first.patch 0009-Add-support-for-UEFI-Secure-Boot-validation-toggling.patch 0015-change-arch-in-mkdeb-template.patch +0017-fix-OBSOLETE_BY-in-DKMS.CONF-Closes-81.patch +lp-1827697.patch
  4. Download patch debian/scripts/dkms-autopkgtest

    --- 2.7.1-1/debian/scripts/dkms-autopkgtest 2019-06-25 09:00:42.000000000 +0000 +++ 2.7.1-1ubuntu2/debian/scripts/dkms-autopkgtest 2019-07-19 18:35:46.000000000 +0000 @@ -6,11 +6,23 @@ set -eu run_pkg() { pkg="$1" + tmpfile=$(mktemp) echo "I: Installing binary package $pkg" export DEBIAN_FRONTEND=noninteractive RC=0 - apt-get install -yq $pkg </dev/null || RC=$? + apt-get install -yq $pkg </dev/null 2>&1 >"$tmpfile" || RC=$? + cat "$tmpfile" + + # Do not continue if dkms build was skipped due to BUILD_EXCLUSIVE + # directive + excluded=0 + grep -q "BUILD_EXCLUSIVE" "$tmpfile" && excluded=1 + rm "$tmpfile" + if [ "$excluded" -eq 1 ]; then + echo "I: Package $pkg excluded by BUILD_EXCLUSIVE directive, skipping" + return + fi # collect build logs as artifacts if [ -d /var/lib/dkms ]; then
  5. Download patch debian/patches/lp-1827697.patch

    --- 2.7.1-1/debian/patches/lp-1827697.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.7.1-1ubuntu2/debian/patches/lp-1827697.patch 2019-06-25 09:16:05.000000000 +0000 @@ -0,0 +1,18 @@ +Description: Do not /dev/null dkms_autoinstaller + Do not invoke dkms_autoinstaller from /etc/kernel/header_postinst.d/dkms + with redirection to /dev/null (LP: #1827697), this caused debconf dialog + to not be shown. +Author: Julian Andres Klode <juliank@ubuntu.com> +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1827697 + +--- dkms-2.6.1.orig/kernel_postinst.d_dkms ++++ dkms-2.6.1/kernel_postinst.d_dkms +@@ -36,7 +36,7 @@ case "${uname_s}" in + esac + + if [ -x /usr/lib/dkms/dkms_autoinstaller ]; then +- exec /usr/lib/dkms/dkms_autoinstaller start $inst_kern > /dev/null ++ exec /usr/lib/dkms/dkms_autoinstaller start $inst_kern + fi + + if ! _check_kernel_dir $inst_kern ; then

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: ibus

ibus (1.5.19-4ubuntu2) eoan; urgency=medium * debian/patches/git-support-common_name-in-ISO-639.patch: - Use "Bangla" instead of "Bengali" when labeling bn IBus input methods for the UIs (LP: #991002). -- Gunnar Hjalmarsson <gunnarhj@ubuntu.com> Wed, 10 Jul 2019 18:46:00 +0200 ibus (1.5.19-4ubuntu1) eoan; urgency=medium * Resynchronize on Debian, remaining changes * debian/control, debian/rules: - use dh_translations * debian/control: - don't recommends several toolkits by default * debian/patches/ibus.gsettings-override: - Use system keyboard layout by default * Add ubuntu patches: ubuntu-title-update.patch ubuntu-disable-trigger.patch ubuntu-forward-panel-properties.patch ubuntu-use-distinguishable-abstract-address.patch * debian/patches/ubuntu-no-notification.patch: - removed, that change was added in Debian but named differently * debian/patches/delete-weak-pointer.patch: - Fix FTBFS for Vala >= 0.34.4 -- Sebastien Bacher <seb128@ubuntu.com> Fri, 21 Jun 2019 15:17:50 +0200

Modifications :
  1. Download patch debian/rules

    --- 1.5.19-4/debian/rules 2019-02-15 22:40:11.000000000 +0000 +++ 1.5.19-4ubuntu2/debian/rules 2019-06-21 12:54:57.000000000 +0000 @@ -7,7 +7,7 @@ export DEB_CFLAGS_MAINT_APPEND = -Wall export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed %: - dh $@ --with gir,python3 + dh $@ --with gir,python3,translations CONFIGURE_FLAGS = \ --disable-silent-rules \
  2. Download patch debian/patches/ubuntu-unicode-keybinding.patch

    --- 1.5.19-4/debian/patches/ubuntu-unicode-keybinding.patch 1970-01-01 00:00:00.000000000 +0000 +++ 1.5.19-4ubuntu2/debian/patches/ubuntu-unicode-keybinding.patch 2019-06-21 12:48:53.000000000 +0000 @@ -0,0 +1,16 @@ +# Description: restore ctrl-shift-u +# Upstream: https://github.com/ibus/ibus/pull/1962 +# Ubuntu: https://launchpad.net/bugs/1760308 +Index: ibus-1.5.19/src/ibusenginesimple.c +=================================================================== +--- ibus-1.5.19.orig/src/ibusenginesimple.c ++++ ibus-1.5.19/src/ibusenginesimple.c +@@ -1146,7 +1146,7 @@ ibus_engine_simple_process_key_event (IB + have_hex_mods = (modifiers & (HEX_MOD_MASK)) == HEX_MOD_MASK; + } + +- is_hex_start = (keyval == IBUS_KEY_U) && priv->hex_mode_enabled; ++ is_hex_start = (keyval == IBUS_KEY_U); + is_hex_end = (keyval == IBUS_KEY_space || + keyval == IBUS_KEY_KP_Space || + keyval == IBUS_KEY_Return ||
  3. Download patch debian/control

    --- 1.5.19-4/debian/control 2019-02-17 05:24:26.000000000 +0000 +++ 1.5.19-4ubuntu2/debian/control 2019-06-21 12:47:08.000000000 +0000 @@ -1,12 +1,14 @@ Source: ibus Section: utils Priority: optional -Maintainer: Debian Input Method Team <debian-input-method@lists.debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Debian Input Method Team <debian-input-method@lists.debian.org> Uploaders: Aron Xu <aron@debian.org>, Osamu Aoki <osamu@debian.org> Build-Depends: dbus (>= 1.8), debhelper-compat (= 12), desktop-file-utils, dh-python, + dh-translations, gettext, gobject-introspection, gnome-common, @@ -48,13 +50,10 @@ Depends: dconf-cli, ${misc:Depends}, ${python3:Depends}, ${shlibs:Depends} -Recommends: ibus-clutter, - ibus-gtk, - ibus-gtk3, - ibus-qt4, - libqt5gui5, +Recommends: ibus-gtk | ibus-qt4 | libqt5gui5, + ibus-gtk3 | ibus-qt4 | libqt5gui5, im-config -Suggests: ibus-doc +Suggests: ibus-clutter, ibus-doc, ibus-qt4, libqt5gui5 Breaks: ibus-anthy (<< 1.5.3-2), ibus-el (<< 0.3.2-2), ibus-googlepinyin (<< 0.1.2-2)
  4. Download patch debian/patches/ubuntu-use-distinguishable-abstract-address.patch

    --- 1.5.19-4/debian/patches/ubuntu-use-distinguishable-abstract-address.patch 1970-01-01 00:00:00.000000000 +0000 +++ 1.5.19-4ubuntu2/debian/patches/ubuntu-use-distinguishable-abstract-address.patch 2019-06-21 12:48:53.000000000 +0000 @@ -0,0 +1,22 @@ +Author: Jamie Strandboge <jamie@canonical.com> +Description: ibus-daemon by default uses a unix socket name of /tmp/dbus-... + that is indistinguishable from dbus-daemon abstract sockets. While dbus-daemon + has AppArmor mediation, ibus-daemon does not so it is important that its + abstract socket not be confused with dbus-daemon's. By modifying ibus-daemon's + default socket to 'unix:tmpdir=/tmp/ibus' AppArmor can continue mediating DBus + abstract sockets like normal and also mediate access to the + ibus-daemon-specific abstract socket via unix rules. +Bug-Ubuntu: https://launchpad.net/bugs/1580463 +Forwarded: no + +--- a/bus/global.c ++++ b/bus/global.c +@@ -24,7 +24,7 @@ + #include "global.h" + + gchar **g_argv = NULL; +-gchar *g_address = "unix:tmpdir=/tmp"; ++gchar *g_address = "unix:tmpdir=/tmp/ibus"; + gchar *g_cache = "auto"; + gboolean g_mempro = FALSE; + gboolean g_verbose = FALSE;
  5. Download patch debian/patches/ubuntu-forward-panel-properties.patch

    --- 1.5.19-4/debian/patches/ubuntu-forward-panel-properties.patch 1970-01-01 00:00:00.000000000 +0000 +++ 1.5.19-4ubuntu2/debian/patches/ubuntu-forward-panel-properties.patch 2019-06-21 12:48:53.000000000 +0000 @@ -0,0 +1,92 @@ +From: William Hua <william.hua@canonical.com> +Date: Wed, 19 Mar 2014 14:08:29 +1300 +Subject: Broadcast when panel properties are registered/updated + +Augment the panel service D-Bus interface so that external consumers +can detect when the panel service properties are changed. + +Bug-Ubuntu: https://bugs.launchpad.net/bugs/1290881 +--- + src/ibuspanelservice.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 46 insertions(+) + +Index: ibus-1.5.19/src/ibuspanelservice.c +=================================================================== +--- ibus-1.5.19.orig/src/ibuspanelservice.c ++++ ibus-1.5.19/src/ibuspanelservice.c +@@ -160,8 +160,24 @@ static void ibus_panel_service_pane + + G_DEFINE_TYPE (IBusPanelService, ibus_panel_service, IBUS_TYPE_SERVICE) + ++/* Ubuntu-specific */ ++#define UBUNTU_INTERFACE_PANEL "com.canonical.IBus.Panel.Private" ++ + static const gchar introspection_xml[] = + "<node>" ++ /* Ubuntu-specific */ ++ " <interface name='" UBUNTU_INTERFACE_PANEL "'>" ++ " <method name='ActivateProperty'>" ++ " <arg direction='in' type='s' name='name' />" ++ " <arg direction='in' type='u' name='state' />" ++ " </method>" ++ " <signal name='PropertiesRegistered'>" ++ " <arg type='v' name='properties' />" ++ " </signal>" ++ " <signal name='PropertyUpdated'>" ++ " <arg type='v' name='property' />" ++ " </signal>" ++ " </interface>" + " <interface name='org.freedesktop.IBus.Panel'>" + /* Methods */ + " <method name='UpdatePreeditText'>" +@@ -1101,6 +1117,20 @@ ibus_panel_service_service_method_call ( + { + IBusPanelService *panel = IBUS_PANEL_SERVICE (service); + ++ /* Ubuntu-specific */ ++ if (g_strcmp0 (interface_name, UBUNTU_INTERFACE_PANEL) == 0) { ++ if (g_strcmp0 (method_name, "ActivateProperty") == 0) { ++ const gchar *name; ++ guint state; ++ ++ g_variant_get (parameters, "(&su)", &name, &state); ++ ++ ibus_panel_service_property_activate (panel, name, state); ++ g_dbus_method_invocation_return_value (invocation, NULL); ++ return; ++ } ++ } ++ + if (g_strcmp0 (interface_name, IBUS_INTERFACE_PANEL) != 0) { + IBUS_SERVICE_CLASS (ibus_panel_service_parent_class)-> + service_method_call (service, +@@ -1192,6 +1222,14 @@ ibus_panel_service_service_method_call ( + g_signal_emit (panel, panel_signals[REGISTER_PROPERTIES], 0, prop_list); + _g_object_unref_if_floating (prop_list); + g_dbus_method_invocation_return_value (invocation, NULL); ++ ++ /* Ubuntu-specific */ ++ ibus_service_emit_signal ((IBusService *) panel, ++ NULL, ++ UBUNTU_INTERFACE_PANEL, ++ "PropertiesRegistered", ++ parameters, ++ NULL); + return; + } + +@@ -1203,6 +1241,14 @@ ibus_panel_service_service_method_call ( + g_signal_emit (panel, panel_signals[UPDATE_PROPERTY], 0, property); + _g_object_unref_if_floating (property); + g_dbus_method_invocation_return_value (invocation, NULL); ++ ++ /* Ubuntu-specific */ ++ ibus_service_emit_signal ((IBusService *) panel, ++ NULL, ++ UBUNTU_INTERFACE_PANEL, ++ "PropertyUpdated", ++ parameters, ++ NULL); + return; + } +
  6. Download patch debian/patches/ubuntu-disable-trigger.patch
  7. Download patch debian/patches/series

    --- 1.5.19-4/debian/patches/series 2019-02-17 06:13:18.000000000 +0000 +++ 1.5.19-4ubuntu2/debian/patches/series 2019-07-10 18:44:36.000000000 +0000 @@ -2,3 +2,12 @@ remove-popup dconf-Use-dbus-run-session-to-set-up-dconf-overrides.patch dconf-Create-a-temporary-XDG_RUNTIME_DIR.patch wayland.patch + +git-support-common_name-in-ISO-639.patch + +#Ubuntu changes +ubuntu-disable-trigger.patch +ubuntu-forward-panel-properties.patch +ubuntu-unicode-keybinding.patch +delete-weak-pointer.patch +ubuntu-use-distinguishable-abstract-address.patch
  8. Download patch debian/patches/git-support-common_name-in-ISO-639.patch

    --- 1.5.19-4/debian/patches/git-support-common_name-in-ISO-639.patch 1970-01-01 00:00:00.000000000 +0000 +++ 1.5.19-4ubuntu2/debian/patches/git-support-common_name-in-ISO-639.patch 2019-07-10 18:43:01.000000000 +0000 @@ -0,0 +1,55 @@ +From 6bdc692e0dc72a9afae5407983859e88c16b4971 Mon Sep 17 00:00:00 2001 +From: fujiwarat <takao.fujiwara1@gmail.com> +Date: Wed, 10 Jul 2019 18:18:04 +0900 +Subject: [PATCH] src: Support common_name in ISO 639 + +Nowadays "Bangla" is preferred to "Bengali" for BN language code +and iso_639*.xml describes it in "common_name" tag. + +BUG=https://github.com/ibus/ibus/issues/2104 +--- + src/ibusutil.c | 21 ++++++++++++++++----- + 1 file changed, 16 insertions(+), 5 deletions(-) + +diff --git a/src/ibusutil.c b/src/ibusutil.c +index 88c054a2..701984c7 100644 +--- a/src/ibusutil.c ++++ b/src/ibusutil.c +@@ -53,6 +53,7 @@ _iso_codes_parse_xml_node (XMLNode *node) + XMLNode *sub_node = (XMLNode *)p->data; + gchar **attributes = NULL; + int i, j; ++ gboolean has_common_name = FALSE; + struct { + const gchar *key; + gchar *value; +@@ -68,14 +69,24 @@ _iso_codes_parse_xml_node (XMLNode *node) + + attributes = sub_node->attributes; + for (i = 0; attributes[i]; i += 2) { +- if (g_strcmp0 (attributes[i], "name") == 0) { ++ if (!g_strcmp0 (attributes[i], "common_name")) { + for (j = 0; j < G_N_ELEMENTS (entries); j++) { + if (entries[j].value == NULL) + continue; +- g_hash_table_insert (__languages_dict, +- (gpointer) g_strdup (entries[j].value), +- (gpointer) g_strdup (attributes[i + 1])); +- entries[j].value = NULL; ++ g_hash_table_replace (__languages_dict, ++ g_strdup (entries[j].value), ++ g_strdup (attributes[i + 1])); ++ } ++ has_common_name = TRUE; ++ } else if (!g_strcmp0 (attributes[i], "name")) { ++ if (has_common_name) ++ continue; ++ for (j = 0; j < G_N_ELEMENTS (entries); j++) { ++ if (entries[j].value == NULL) ++ continue; ++ g_hash_table_replace (__languages_dict, ++ g_strdup (entries[j].value), ++ g_strdup (attributes[i + 1])); + } + } else { + for (j = 0; j < G_N_ELEMENTS (entries); j++) {
  9. Download patch debian/patches/delete-weak-pointer.patch

    --- 1.5.19-4/debian/patches/delete-weak-pointer.patch 1970-01-01 00:00:00.000000000 +0000 +++ 1.5.19-4ubuntu2/debian/patches/delete-weak-pointer.patch 2019-06-21 12:48:53.000000000 +0000 @@ -0,0 +1,191 @@ +From 4d7c1e00e15921a0448947961183c1c124b6b49f Mon Sep 17 00:00:00 2001 +From: fujiwarat <takao.fujiwara1@gmail.com> +Date: Tue, 29 Jan 2019 17:57:16 +0900 +Subject: [PATCH] Delete weak pointer in GList.SList for vala 0.43.4 + +Vala 0.43.4 does not allow to convert a weak pointer to the full one in SList. + +emojier.vala:424.36-425.73: error: Assignment: Cannot convert from +`GLib.SList<weak IBus.EmojiData>' to `GLib.SList<IBus.EmojiData>?' +emojier.vala:636.9-637.69: error: Assignment: Cannot convert from +`GLib.SList<weak IBus.UnicodeBlock>' to `GLib.SList<IBus.UnicodeBlock>' +panel.vala:526.36-526.65: error: Assignment: Cannot convert from +`GLib.List<weak IBus.EngineDesc>' to `GLib.List<IBus.EngineDesc>?' +--- + src/ibusbus.h | 11 ++++++----- + src/ibusemoji.h | 6 +++--- + src/ibusunicode.h | 8 ++++---- + ui/gtk3/emojier.vala | 24 ++++++++++++++++-------- + 4 files changed, 29 insertions(+), 20 deletions(-) + +Index: ibus/src/ibusbus.h +=================================================================== +--- ibus.orig/src/ibusbus.h ++++ ibus/src/ibusbus.h +@@ -2,7 +2,8 @@ + /* vim:set et sts=4: */ + /* ibus - The Input Bus + * Copyright (C) 2008-2013 Peng Huang <shawn.p.huang@gmail.com> +- * Copyright (C) 2008-2013 Red Hat, Inc. ++ * Copyright (C) 2013-2019 Takao Fujiwara <takao.fujiwara1@gmail.com> ++ * Copyright (C) 2008-2019 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -692,7 +693,7 @@ gboolean ibus_bus_register_component + * + * List engines synchronously. + * +- * Returns: (transfer container) (element-type IBusEngineDesc): ++ * Returns: (transfer full) (element-type IBusEngineDesc): + * A List of engines. + */ + GList *ibus_bus_list_engines (IBusBus *bus); +@@ -725,7 +726,7 @@ void ibus_bus_list_engines_async + * + * Finishes an operation started with ibus_bus_list_engines_async(). + * +- * Returns: (transfer container) (element-type IBusEngineDesc): ++ * Returns: (transfer full) (element-type IBusEngineDesc): + * A List of engines. + */ + GList *ibus_bus_list_engines_async_finish +@@ -740,7 +741,7 @@ GList *ibus_bus_list_engines_async + * + * List active engines synchronously. + * +- * Returns: (transfer container) (element-type IBusEngineDesc): ++ * Returns: (transfer full) (element-type IBusEngineDesc): + * A List of active engines. + * + * Deprecated: 1.5.3: Read dconf value +@@ -782,7 +783,7 @@ void ibus_bus_list_active_engine + * + * Finishes an operation started with ibus_bus_list_active_engines_async(). + * +- * Returns: (transfer container) (element-type IBusEngineDesc): ++ * Returns: (transfer full) (element-type IBusEngineDesc): + * A List of active engines. + * + * Deprecated: 1.5.3: Read dconf value +Index: ibus/src/ibusemoji.h +=================================================================== +--- ibus.orig/src/ibusemoji.h ++++ ibus/src/ibusemoji.h +@@ -1,8 +1,8 @@ + /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */ + /* vim:set et sts=4: */ + /* bus - The Input Bus +- * Copyright (C) 2017 Takao Fujiwara <takao.fujiwara1@gmail.com> +- * Copyright (C) 2017 Red Hat, Inc. ++ * Copyright (C) 2017-2019 Takao Fujiwara <takao.fujiwara1@gmail.com> ++ * Copyright (C) 2017-2019 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -209,7 +209,7 @@ void ibus_emoji_data_save + * ibus_emoji_data_load: + * @path: A path of the saved dictionary file. + * +- * Returns: (element-type IBusEmojiData) (transfer container): ++ * Returns: (element-type IBusEmojiData) (transfer full): + * An #IBusEmojiData list loaded from the saved cache file. + */ + GSList * ibus_emoji_data_load (const gchar *path); +Index: ibus/src/ibusunicode.h +=================================================================== +--- ibus.orig/src/ibusunicode.h ++++ ibus/src/ibusunicode.h +@@ -1,8 +1,8 @@ + /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */ + /* vim:set et sts=4: */ + /* bus - The Input Bus +- * Copyright (C) 2018 Takao Fujiwara <takao.fujiwara1@gmail.com> +- * Copyright (C) 2018 Red Hat, Inc. ++ * Copyright (C) 2018-2019 Takao Fujiwara <takao.fujiwara1@gmail.com> ++ * Copyright (C) 2018-2019 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -201,7 +201,7 @@ void ibus_unicode_data_save + * #IBusUnicodeData, * the total number of #IBusUnicodeData) of uint values + * with that signal by 100 times. Otherwise %NULL. + * +- * Returns: (element-type IBusUnicodeData) (transfer container): ++ * Returns: (element-type IBusUnicodeData) (transfer full): + * An #IBusUnicodeData list loaded from the saved cache file. + */ + GSList * ibus_unicode_data_load (const gchar *path, +@@ -290,7 +290,7 @@ void ibus_unicode_block_sav + * ibus_unicode_block_load: + * @path: A path of the saved dictionary file. + * +- * Returns: (element-type IBusUnicodeBlock) (transfer container): ++ * Returns: (element-type IBusUnicodeBlock) (transfer full): + * An #IBusUnicodeBlock list loaded from the saved cache file. + */ + GSList * ibus_unicode_block_load (const gchar *path); +Index: ibus/ui/gtk3/emojier.vala +=================================================================== +--- ibus.orig/ui/gtk3/emojier.vala ++++ ibus/ui/gtk3/emojier.vala +@@ -2,7 +2,7 @@ + * + * ibus - The Input Bus + * +- * Copyright (c) 2017-2018 Takao Fujiwara <takao.fujiwara1@gmail.com> ++ * Copyright (c) 2017-2019 Takao Fujiwara <takao.fujiwara1@gmail.com> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public +@@ -912,8 +912,13 @@ public class IBusEmojier : Gtk.Applicati + update_unicode_blocks(); + return; + } else { +- unowned GLib.SList<unowned string> emojis = +- m_category_to_emojis_dict.lookup(category); ++ // Use copy_deep() since vala 0.43.4 does not allow to assign ++ // a weak pointer to the full one in SList: ++ // emojier.vala:885.48-886.62: error: Assignment: Cannot convert ++ // from `GLib.SList<string>' to `GLib.SList<weak string>?' ++ GLib.SList<string> emojis = ++ m_category_to_emojis_dict.lookup(category).copy_deep( ++ GLib.strdup); + m_lookup_table.clear(); + m_candidate_panel_mode = true; + foreach (unowned string emoji in emojis) { +@@ -1577,8 +1582,8 @@ public class IBusEmojier : Gtk.Applicati + m_vbox.add(widget); + widget.show_all(); + } +- unowned GLib.SList<unowned string>? annotations = +- data.get_annotations(); ++ GLib.SList<string> annotations = ++ data.get_annotations().copy_deep(GLib.strdup); + var buff = new GLib.StringBuilder(); + int i = 0; + foreach (unowned string annotation in annotations) { +@@ -2094,17 +2099,20 @@ public class IBusEmojier : Gtk.Applicati + ) as IBus.EmojiData; + m_emoji_to_data_dict.insert(favorite, new_data); + } else { +- unowned GLib.SList<string> annotations = data.get_annotations(); ++ GLib.SList<string> annotations = ++ data.get_annotations().copy_deep(GLib.strdup); + if (annotations.find_custom(annotation, GLib.strcmp) == null) { + annotations.append(annotation); +- data.set_annotations(annotations.copy()); ++ data.set_annotations(annotations.copy_deep(GLib.strdup)); + } + } + unowned GLib.SList<string> emojis = + m_annotation_to_emojis_dict.lookup(annotation); + if (emojis.find_custom(favorite, GLib.strcmp) == null) { + emojis.append(favorite); +- m_annotation_to_emojis_dict.replace(annotation, emojis.copy()); ++ m_annotation_to_emojis_dict.replace( ++ annotation, ++ emojis.copy_deep(GLib.strdup)); + } + } + }

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: ibus-libpinyin

ibus-libpinyin (1.11.0-1ubuntu1) eoan; urgency=medium * debian/patches/fix-SuggestionEditor.patch: - Upstream commit to fix bug which prevented typing of certain punctuation marks (LP: #1829947). -- Gunnar Hjalmarsson <gunnarhj@ubuntu.com> Wed, 22 May 2019 13:10:00 +0200

Modifications :
  1. Download patch debian/patches/fix-SuggestionEditor.patch

    --- 1.11.0-1/debian/patches/fix-SuggestionEditor.patch 1970-01-01 00:00:00.000000000 +0000 +++ 1.11.0-1ubuntu1/debian/patches/fix-SuggestionEditor.patch 2019-05-22 10:56:45.000000000 +0000 @@ -0,0 +1,15 @@ +diff --git a/src/PYPSuggestionEditor.cc b/src/PYPSuggestionEditor.cc +index 3f543b2..d685370 100644 +--- a/src/PYPSuggestionEditor.cc ++++ b/src/PYPSuggestionEditor.cc +@@ -77,6 +77,10 @@ SuggestionEditor::processKeyEvent (guint keyval, guint keycode, guint modifiers) + if (keyval == IBUS_Return) + return FALSE; + ++ // no suggestion candidates. ++ if (m_lookup_table.size () == 0) ++ return FALSE; ++ + //handle page/cursor up/down here. + if (processPageKey (keyval)) + return TRUE;
  2. Download patch debian/control

    --- 1.11.0-1/debian/control 2019-02-06 09:00:54.000000000 +0000 +++ 1.11.0-1ubuntu1/debian/control 2019-05-20 18:14:17.000000000 +0000 @@ -1,7 +1,8 @@ Source: ibus-libpinyin Section: utils Priority: optional -Maintainer: Debian Input Method Team <debian-input-method@lists.debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Debian Input Method Team <debian-input-method@lists.debian.org> Uploaders: Asias He <asias@debian.org>, Aron Xu <aron@debian.org>, ChangZhuo Chen (陳昌倬) <czchen@debian.org>
  3. Download patch debian/patches/series

    --- 1.11.0-1/debian/patches/series 2019-02-06 08:52:54.000000000 +0000 +++ 1.11.0-1ubuntu1/debian/patches/series 2019-05-22 10:57:25.000000000 +0000 @@ -1 +1,2 @@ 0002-fixes-lua-5.2-compile.patch +fix-SuggestionEditor.patch

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: libxml2

libxml2 (2.9.4+dfsg1-7ubuntu3) disco; urgency=medium * No-change rebuild for icu soname changes. -- Matthias Klose <doko@ubuntu.com> Tue, 13 Nov 2018 08:14:59 +0000 libxml2 (2.9.4+dfsg1-7ubuntu2) disco; urgency=medium * No-change rebuild to build without python3.6 support. -- Matthias Klose <doko@ubuntu.com> Sat, 03 Nov 2018 11:51:26 +0000 libxml2 (2.9.4+dfsg1-7ubuntu1) cosmic; urgency=medium * SECURITY UPDATE: XXE attacks - debian/patches/CVE-2016-9318.patch: fix in parser.c. - CVE-2016-9318 * SECURITY UPDATE: Denial of service - debian/patches/CVE-2017-18258.patch: fix in xzlib.c. - CVE-2017-18258 * SECURITY UPDATE: Denial of service - debian/patches/CVE-2018-14404.patch: fix in xpath.c. - CVE-2018-14404 * SECURITY UPDATE: Infinite loop in LZMA decompression - debian/patches/CVE-2018-14567.patch: fix in xzlib.c. - CVE-2018-14567 * SECURITY UPDATE: Infinite recursion/Denial of service - debian/patches/CVE-2017-16932.patch: fix in parser.c and add some error check files result/errors/759579.xml, result/errors/759579.xml.err, result/errors/759579.xml.str, test/errors/759579.xml. - CVE-2017-16932 -- Leonidas S. Barbosa <leo.barbosa@canonical.com> Thu, 16 Aug 2018 12:02:31 -0300 libxml2 (2.9.4+dfsg1-7build1) cosmic; urgency=medium * No-change rebuild to build for python3.7. -- Matthias Klose <doko@ubuntu.com> Thu, 28 Jun 2018 06:58:57 +0000

Modifications :
  1. Download patch debian/patches/CVE-2017-18258.patch

    --- 2.9.4+dfsg1-7/debian/patches/CVE-2017-18258.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.9.4+dfsg1-7ubuntu3/debian/patches/CVE-2017-18258.patch 2018-08-16 15:02:31.000000000 +0000 @@ -0,0 +1,25 @@ +From e2a9122b8dde53d320750451e9907a7dcb2ca8bb Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wellnhofer@aevum.de> +Date: Thu, 7 Sep 2017 18:36:01 +0200 +Subject: [PATCH] Set memory limit for LZMA decompression + +Otherwise malicious LZMA compressed files could consume large amounts +of memory when decompressed. + +According to the xz man page, files compressed with `xz -9` currently +require 65 MB to decompress, so set the limit to 100 MB. + +Should fix bug 786696. +diff --git a/xzlib.c b/xzlib.c +index 782957f..f43632b 100644 +--- a/xzlib.c ++++ b/xzlib.c +@@ -408,7 +408,7 @@ xz_head(xz_statep state) + state->strm = init; + state->strm.avail_in = 0; + state->strm.next_in = NULL; +- if (lzma_auto_decoder(&state->strm, UINT64_MAX, 0) != LZMA_OK) { ++ if (lzma_auto_decoder(&state->strm, 100000000, 0) != LZMA_OK) { + xmlFree(state->out); + xmlFree(state->in); + state->size = 0;
  2. Download patch debian/patches/CVE-2017-16932.patch

    --- 2.9.4+dfsg1-7/debian/patches/CVE-2017-16932.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.9.4+dfsg1-7ubuntu3/debian/patches/CVE-2017-16932.patch 2018-08-16 15:02:31.000000000 +0000 @@ -0,0 +1,113 @@ +From 899a5d9f0ed13b8e32449a08a361e0de127dd961 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wellnhofer@aevum.de> +Date: Tue, 25 Jul 2017 14:59:49 +0200 +Subject: [PATCH] Detect infinite recursion in parameter entities + +When expanding a parameter entity in a DTD, infinite recursion could +lead to an infinite loop or memory exhaustion. + +Thanks to Wei Lei for the first of many reports. + +Fixes bug 759579. +--- + parser.c | 15 +++++++++++++-- + result/errors/759579.xml | 0 + result/errors/759579.xml.err | 6 ++++++ + result/errors/759579.xml.str | 7 +++++++ + test/errors/759579.xml | 11 +++++++++++ + 5 files changed, 37 insertions(+), 2 deletions(-) + create mode 100644 result/errors/759579.xml + create mode 100644 result/errors/759579.xml.err + create mode 100644 result/errors/759579.xml.str + create mode 100644 test/errors/759579.xml + +diff --git a/parser.c b/parser.c +index bb6d527..e79cadb 100644 +--- a/parser.c ++++ b/parser.c +@@ -2238,6 +2238,13 @@ xmlPushInput(xmlParserCtxtPtr ctxt, xmlParserInputPtr input) { + xmlGenericError(xmlGenericErrorContext, + "Pushing input %d : %.30s\n", ctxt->inputNr+1, input->cur); + } ++ if (((ctxt->inputNr > 40) && ((ctxt->options & XML_PARSE_HUGE) == 0)) || ++ (ctxt->inputNr > 1024)) { ++ xmlFatalErr(ctxt, XML_ERR_ENTITY_LOOP, NULL); ++ while (ctxt->inputNr > 1) ++ xmlFreeInputStream(inputPop(ctxt)); ++ return(-1); ++ } + ret = inputPush(ctxt, input); + if (ctxt->instate == XML_PARSER_EOF) + return(-1); +@@ -8122,8 +8129,10 @@ xmlParsePEReference(xmlParserCtxtPtr ctxt) + name, NULL); + } else if (ctxt->input->free != deallocblankswrapper) { + input = xmlNewBlanksWrapperInputStream(ctxt, entity); +- if (xmlPushInput(ctxt, input) < 0) ++ if (xmlPushInput(ctxt, input) < 0) { ++ xmlFreeInputStream(input); + return; ++ } + } else { + if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) && + ((ctxt->options & XML_PARSE_NOENT) == 0) && +@@ -8140,8 +8149,10 @@ xmlParsePEReference(xmlParserCtxtPtr ctxt) + * c.f. http://www.w3.org/TR/REC-xml#as-PE + */ + input = xmlNewEntityInputStream(ctxt, entity); +- if (xmlPushInput(ctxt, input) < 0) ++ if (xmlPushInput(ctxt, input) < 0) { ++ xmlFreeInputStream(input); + return; ++ } + if ((entity->etype == XML_EXTERNAL_PARAMETER_ENTITY) && + (CMP5(CUR_PTR, '<', '?', 'x', 'm', 'l')) && + (IS_BLANK_CH(NXT(5)))) { +diff --git a/result/errors/759579.xml b/result/errors/759579.xml +new file mode 100644 +index 0000000..e69de29 +diff --git a/result/errors/759579.xml.err b/result/errors/759579.xml.err +new file mode 100644 +index 0000000..288026e +--- /dev/null ++++ b/result/errors/759579.xml.err +@@ -0,0 +1,6 @@ ++Entity: line 2: parser error : Detected an entity reference loop ++ %z; %z; %z; %z; %z; ++ ^ ++Entity: line 2: ++ %z; %z; %z; %z; %z; ++ ^ +diff --git a/result/errors/759579.xml.str b/result/errors/759579.xml.str +new file mode 100644 +index 0000000..09408f5 +--- /dev/null ++++ b/result/errors/759579.xml.str +@@ -0,0 +1,7 @@ ++Entity: line 2: parser error : Detected an entity reference loop ++ %z; %z; %z; %z; %z; ++ ^ ++Entity: line 2: ++ %z; %z; %z; %z; %z; ++ ^ ++./test/errors/759579.xml : failed to parse +diff --git a/test/errors/759579.xml b/test/errors/759579.xml +new file mode 100644 +index 0000000..7fadd70 +--- /dev/null ++++ b/test/errors/759579.xml +@@ -0,0 +1,11 @@ ++<!DOCTYPE doc [ ++ <!ENTITY % z ' ++ &#37;z; &#37;z; &#37;z; &#37;z; &#37;z; ++ &#37;z; &#37;z; &#37;z; &#37;z; &#37;z; ++ &#37;z; &#37;z; &#37;z; &#37;z; &#37;z; ++ &#37;z; &#37;z; &#37;z; &#37;z; &#37;z; ++ &#37;z; &#37;z; &#37;z; &#37;z; &#37;z; ++ '> ++ %z; ++]> ++<doc/> +-- +2.7.4 +
  3. Download patch debian/patches/CVE-2016-9318.patch

    --- 2.9.4+dfsg1-7/debian/patches/CVE-2016-9318.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.9.4+dfsg1-7ubuntu3/debian/patches/CVE-2016-9318.patch 2018-08-16 15:02:31.000000000 +0000 @@ -0,0 +1,51 @@ +From ad88b54f1a28a8565964a370b5d387927b633c0d Mon Sep 17 00:00:00 2001 +From: Daniel Veillard <veillard@redhat.com> +Date: Fri, 8 Dec 2017 09:42:31 +0100 +Subject: [PATCH] Improve handling of context input_id + +For https://bugzilla.gnome.org/show_bug.cgi?id=772726 +This was used in xmlsec to detect issues with accessing external entities +and prevent them, but was unreliable, based on a patch from Aleksey Sanin + +* parser.c: make sure input_id is incremented when creating sub-entities + for parsing or when parsing out of context +diff --git a/parser.c b/parser.c +index a06c002..bb6d527 100644 +--- a/parser.c ++++ b/parser.c +@@ -13631,6 +13631,7 @@ xmlParseBalancedChunkMemoryInternal(xmlParserCtxtPtr oldctxt, + ctxt->userData = ctxt; + if (ctxt->dict != NULL) xmlDictFree(ctxt->dict); + ctxt->dict = oldctxt->dict; ++ ctxt->input_id = oldctxt->input_id + 1; + ctxt->str_xml = xmlDictLookup(ctxt->dict, BAD_CAST "xml", 3); + ctxt->str_xmlns = xmlDictLookup(ctxt->dict, BAD_CAST "xmlns", 5); + ctxt->str_xml_ns = xmlDictLookup(ctxt->dict, XML_XML_NAMESPACE, 36); +@@ -13884,6 +13885,7 @@ xmlParseInNodeContext(xmlNodePtr node, const char *data, int datalen, + xmlDetectSAX2(ctxt); + ctxt->myDoc = doc; + /* parsing in context, i.e. as within existing content */ ++ ctxt->input_id = 2; + ctxt->instate = XML_PARSER_CONTENT; + + fake = xmlNewComment(NULL); +@@ -14096,6 +14098,7 @@ xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc, xmlSAXHandlerPtr sax, + newDoc->oldNs = doc->oldNs; + } + ctxt->instate = XML_PARSER_CONTENT; ++ ctxt->input_id = 2; + ctxt->depth = depth; + + /* +@@ -14256,6 +14259,11 @@ xmlCreateEntityParserCtxtInternal(const xmlChar *URL, const xmlChar *ID, + if (pctx != NULL) { + ctxt->options = pctx->options; + ctxt->_private = pctx->_private; ++ /* ++ * this is a subparser of pctx, so the input_id should be ++ * incremented to distinguish from main entity ++ */ ++ ctxt->input_id = pctx->input_id + 1; + } + + uri = xmlBuildURI(URL, base);
  4. Download patch debian/control

    --- 2.9.4+dfsg1-7/debian/control 2018-05-26 10:03:35.000000000 +0000 +++ 2.9.4+dfsg1-7ubuntu3/debian/control 2018-08-16 15:02:31.000000000 +0000 @@ -1,7 +1,8 @@ Source: libxml2 Priority: optional Section: libs -Maintainer: Debian XML/SGML Group <debian-xml-sgml-pkgs@lists.alioth.debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Debian XML/SGML Group <debian-xml-sgml-pkgs@lists.alioth.debian.org> Uploaders: Aron Xu <aron@debian.org>, YunQiang Su <wzssyqa@gmail.com>,
  5. Download patch debian/patches/CVE-2018-14404.patch

    --- 2.9.4+dfsg1-7/debian/patches/CVE-2018-14404.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.9.4+dfsg1-7ubuntu3/debian/patches/CVE-2018-14404.patch 2018-08-16 15:02:31.000000000 +0000 @@ -0,0 +1,47 @@ +From a436374994c47b12d5de1b8b1d191a098fa23594 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wellnhofer@aevum.de> +Date: Mon, 30 Jul 2018 12:54:38 +0200 +Subject: [PATCH] Fix nullptr deref with XPath logic ops + +If the XPath stack is corrupted, for example by a misbehaving extension +function, the "and" and "or" XPath operators could dereference NULL +pointers. Check that the XPath stack isn't empty and optimize the +logic operators slightly. + +Closes: https://gitlab.gnome.org/GNOME/libxml2/issues/5 + +Also see +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=901817 +https://bugzilla.redhat.com/show_bug.cgi?id=1595985 + +This is CVE-2018-14404. + +Thanks to Guy Inbar for the report. +diff --git a/xpath.c b/xpath.c +index 1787be1..13e0812 100644 +--- a/xpath.c ++++ b/xpath.c +@@ -13320,9 +13320,8 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) + return(0); + } + xmlXPathBooleanFunction(ctxt, 1); +- arg1 = valuePop(ctxt); +- arg1->boolval &= arg2->boolval; +- valuePush(ctxt, arg1); ++ if (ctxt->value != NULL) ++ ctxt->value->boolval &= arg2->boolval; + xmlXPathReleaseObject(ctxt->context, arg2); + return (total); + case XPATH_OP_OR: +@@ -13346,9 +13345,8 @@ xmlXPathCompOpEval(xmlXPathParserContextPtr ctxt, xmlXPathStepOpPtr op) + return(0); + } + xmlXPathBooleanFunction(ctxt, 1); +- arg1 = valuePop(ctxt); +- arg1->boolval |= arg2->boolval; +- valuePush(ctxt, arg1); ++ if (ctxt->value != NULL) ++ ctxt->value->boolval |= arg2->boolval; + xmlXPathReleaseObject(ctxt->context, arg2); + return (total); + case XPATH_OP_EQUAL:
  6. Download patch debian/patches/series

    --- 2.9.4+dfsg1-7/debian/patches/series 2018-01-02 07:59:03.000000000 +0000 +++ 2.9.4+dfsg1-7ubuntu3/debian/patches/series 2018-08-16 15:02:31.000000000 +0000 @@ -17,3 +17,8 @@ 0017-python-remove-single-use-of-_PyVerify_fd.patch 0018-Fix-XPath-stack-frame-logic.patch 0019-CVE-2017-8872.patch +CVE-2016-9318.patch +CVE-2017-18258.patch +CVE-2018-14404.patch +CVE-2018-14567.patch +CVE-2017-16932.patch
  7. Download patch debian/patches/CVE-2018-14567.patch

    --- 2.9.4+dfsg1-7/debian/patches/CVE-2018-14567.patch 1970-01-01 00:00:00.000000000 +0000 +++ 2.9.4+dfsg1-7ubuntu3/debian/patches/CVE-2018-14567.patch 2018-08-16 15:02:31.000000000 +0000 @@ -0,0 +1,43 @@ +From 2240fbf5912054af025fb6e01e26375100275e74 Mon Sep 17 00:00:00 2001 +From: Nick Wellnhofer <wellnhofer@aevum.de> +Date: Mon, 30 Jul 2018 13:14:11 +0200 +Subject: [PATCH] Fix infinite loop in LZMA decompression +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Check the liblzma error code more thoroughly to avoid infinite loops. + +Closes: https://gitlab.gnome.org/GNOME/libxml2/issues/13 +Closes: https://bugzilla.gnome.org/show_bug.cgi?id=794914 + +This is CVE-2018-9251 and CVE-2018-14567. + +Thanks to Dongliang Mu and Simon Wörner for the reports. +diff --git a/xzlib.c b/xzlib.c +index f43632b..5df477e 100644 +--- a/xzlib.c ++++ b/xzlib.c +@@ -562,6 +562,10 @@ xz_decomp(xz_statep state) + "internal error: inflate stream corrupt"); + return -1; + } ++ /* ++ * FIXME: Remapping a couple of error codes and falling through ++ * to the LZMA error handling looks fragile. ++ */ + if (ret == Z_MEM_ERROR) + ret = LZMA_MEM_ERROR; + if (ret == Z_DATA_ERROR) +@@ -587,6 +591,11 @@ xz_decomp(xz_statep state) + xz_error(state, LZMA_PROG_ERROR, "compression error"); + return -1; + } ++ if ((state->how != GZIP) && ++ (ret != LZMA_OK) && (ret != LZMA_STREAM_END)) { ++ xz_error(state, ret, "lzma error"); ++ return -1; ++ } + } while (strm->avail_out && ret != LZMA_STREAM_END); + + /* update available output and crc check value */

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: network-manager

network-manager (1.20.0-1ubuntu1) eoan; urgency=medium * New upstream version, merged from Debian -- Sebastien Bacher <seb128@ubuntu.com> Fri, 09 Aug 2019 11:08:56 +0200

Modifications :
  1. Download patch debian/patches/Disable-core-with-expect.patch

    --- 1.20.0-1/debian/patches/Disable-core-with-expect.patch 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/patches/Disable-core-with-expect.patch 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,22 @@ +From: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com> +Date: Fri, 13 May 2016 11:13:20 +0800 +Subject: Disable core-with-expect + +which tends to fail on ppc64el and arm64 +--- + Makefile.am | 1 - + 1 file changed, 1 deletion(-) + +Index: network-manager-1.18.0/Makefile.am +=================================================================== +--- network-manager-1.18.0.orig/Makefile.am ++++ network-manager-1.18.0/Makefile.am +@@ -3785,7 +3785,6 @@ + + check_programs += \ + src/tests/test-core \ +- src/tests/test-core-with-expect \ + src/tests/test-ip4-config \ + src/tests/test-ip6-config \ + src/tests/test-dcb \ +
  2. Download patch debian/network-manager.install

    --- 1.20.0-1/debian/network-manager.install 2019-08-06 20:55:57.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/network-manager.install 2019-08-09 09:18:47.000000000 +0000 @@ -25,5 +25,7 @@ lib/systemd/system/NetworkManager-dispat lib/systemd/system/NetworkManager-wait-online.service debian/NetworkManager.conf etc/NetworkManager/ debian/org.freedesktop.NetworkManager.pkla var/lib/polkit-1/localauthority/10-vendor.d/ +debian/10-*.conf usr/lib/NetworkManager/conf.d/ debian/60-network-manager.rules usr/share/polkit-1/rules.d/ debian/01-ifupdown etc/NetworkManager/dispatcher.d/ +debian/source_network-manager.py /usr/share/apport/package-hooks/
  3. Download patch debian/default-wifi-powersave-on.conf

    --- 1.20.0-1/debian/default-wifi-powersave-on.conf 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/default-wifi-powersave-on.conf 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,2 @@ +[connection] +wifi.powersave = 3
  4. Download patch debian/network-manager.links
  5. Download patch debian/tests/control

    --- 1.20.0-1/debian/tests/control 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/tests/control 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,15 @@ +Tests: wpa-dhclient +Depends: python3, hostapd, dnsmasq-base, wpasupplicant, isc-dhcp-client, iw +Restrictions: needs-root allow-stderr isolation-machine + +Tests: nm.py +Depends: python3, dnsmasq-base, isc-dhcp-client, gir1.2-nm-1.0, network-manager, hostapd, iw, python3-dbusmock, python3-netaddr +Restrictions: needs-root isolation-machine + +Tests: killswitches-no-urfkill +Depends: network-manager, build-essential, linux-headers-generic, rfkill +Restrictions: needs-root allow-stderr isolation-machine + +Tests: urfkill-integration +Depends: network-manager, build-essential, linux-headers-generic, rfkill, urfkill +Restrictions: needs-root allow-stderr isolation-machine
  6. Download patch debian/tests/network_test_base.py
  7. Download patch debian/rules

    --- 1.20.0-1/debian/rules 2019-08-06 20:55:57.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/rules 2019-08-09 09:18:47.000000000 +0000 @@ -2,6 +2,10 @@ include /usr/share/dpkg/architecture.mk +# Without that the tests fail, cannot register existing type 'NMAgentManagerError' +LDFLAGS=$(shell echo $$LDFLAGS | sed -e 's/-Wl,-Bsymbolic-functions//') +export LDFLAGS + PPPD_PLUGIN_DIR := $(shell dh_ppp --plugin-dir) %: @@ -21,7 +25,7 @@ override_dh_auto_configure: --runstatedir=/run \ --with-pppd-plugin-dir=$(PPPD_PLUGIN_DIR) \ --with-pppd=/usr/sbin/pppd \ - --with-resolvconf=/sbin/resolvconf \ + --with-resolvconf=no \ --with-dhclient=/sbin/dhclient \ --with-iptables=/sbin/iptables \ --with-dnsmasq=/usr/sbin/dnsmasq \ @@ -36,6 +40,7 @@ override_dh_auto_configure: --with-nmtui \ --with-nmcli \ --with-selinux \ + --with-tests \ --with-libaudit \ --with-iwd \ --without-dhcpcanon \ @@ -56,11 +61,19 @@ override_dh_auto_configure: override_dh_install: find debian/tmp -name '*.la' -print -delete + rm -vf $(CURDIR)/debian/tmp/etc/init.d/NetworkManager dh_install override_dh_missing: dh_missing --fail-missing + # copy powersave configuration + mkdir -p debian/network-manager/etc/NetworkManager/conf.d + cp debian/default-wifi-powersave-on.conf debian/network-manager/etc/NetworkManager/conf.d/ + +override_dh_installinit: + dh_installinit --noscripts + override_dh_makeshlibs: dh_makeshlibs -X/usr/lib/$(DEB_HOST_MULTIARCH)/NetworkManager/ -X/usr/lib/pppd/ @@ -70,3 +83,8 @@ override_dh_installsystemd: override_dh_ppp: dh_ppp --breaks + +override_dh_auto_test: +ifeq (, $(filter nocheck, $(DEB_BUILD_OPTIONS))) + make check || ( find . -name test-suite.log -exec cat {} \;; exit 1; ) +endif
  8. Download patch debian/tests/killswitches-no-urfkill

    --- 1.20.0-1/debian/tests/killswitches-no-urfkill 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/tests/killswitches-no-urfkill 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,47 @@ +#!/bin/sh +set -e + +make -f debian/tests/Makefile fake-rfkill +# poor man's dependency resolver +DEPS=$(modinfo debian/tests/fake-rfkill.ko | sed -n '/depends:/ {s/^.*://; s/[[:space:]]*$//; p}') +[ -z "$DEPS" ] || modprobe "$DEPS" +insmod debian/tests/fake-rfkill.ko + +fake_id=$(rfkill list | grep fake | awk -F: '{ print $1; }') + +service network-manager start +sleep 30 + +# test blocking the device +rfkill block $fake_id +if ! rfkill list $fake_id | grep 'Soft' | awk '{ print $3; }' | grep -qc yes; then + echo "ERROR: could not block fake device" + rmmod fake-rfkill || true + exit 1 +fi + +if ! LC_MESSAGES=C nmcli radio wifi | grep -qc disabled; then + echo "ERROR: NM could not track device state." + rmmod fake-rfkill || true + exit 1 +fi + + +# test unblocking the device +rfkill unblock $fake_id +if ! rfkill list $fake_id | grep 'Soft' | awk '{ print $3; }' | grep -qc no; then + echo "ERROR: could not unblock fake device" + rmmod fake-rfkill || true + exit 1 +fi + +if ! LC_MESSAGES=C nmcli radio wifi | grep -qc enabled; then + echo "ERROR: NM could not track device state to enabled." + rmmod fake-rfkill || true + exit 1 +fi + +rmmod fake-rfkill +make -f debian/tests/Makefile clean-rfkill + +echo OK
  9. Download patch debian/control

    --- 1.20.0-1/debian/control 2019-08-06 20:55:57.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/control 2019-08-09 09:18:47.000000000 +0000 @@ -1,7 +1,8 @@ Source: network-manager Section: net Priority: optional -Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Utopia Maintenance Team <pkg-utopia-maintainers@lists.alioth.debian.org> Uploaders: Michael Biebl <biebl@debian.org>, Sjoerd Simons <sjoerd@debian.org>, Aron Xu <aron@debian.org> @@ -41,8 +42,10 @@ Build-Depends: debhelper-compat (= 12), python-dbus <!nocheck> Standards-Version: 4.3.0 Rules-Requires-Root: no -Vcs-Git: https://salsa.debian.org/utopia-team/network-manager.git -Vcs-Browser: https://salsa.debian.org/utopia-team/network-manager +XS-Debian-Vcs-Git: https://salsa.debian.org/utopia-team/network-manager.git +XS-Debian-Vcs-Browser: https://salsa.debian.org/utopia-team/network-manager +Vcs-Git: https://git.launchpad.net/network-manager +Vcs-Browser: https://git.launchpad.net/network-manager Homepage: https://wiki.gnome.org/Projects/NetworkManager Package: network-manager @@ -61,8 +64,10 @@ Recommends: ppp, dnsmasq-base, iptables, modemmanager, + network-manager-pptp, crda, -Suggests: libteam-utils, +Suggests: avahi-autoipd, + libteam-utils, isc-dhcp-client, Breaks: ${misc:Breaks} Description: network management framework (daemon and userspace tools) @@ -76,6 +81,8 @@ Description: network management framewor interact with NetworkManager. . Optional dependencies: + * avahi-autoipd: Used for IPv4LL, a protocol for automatic Link-Local IP + address configuration. * ppp: Required for establishing dial-up connections (e.g. via GSM). * dnsmasq-base/iptables: Required for creating Ad-hoc connections and connection sharing. @@ -168,3 +175,21 @@ Description: NetworkManager configuratio No user data is transmitted in the connectivity checks, but merely contacting the Debian connectivity check servers reveals that the user is running a Debian(-based) operating system with NetworkManager. + +Package: network-manager-config-connectivity-ubuntu +Architecture: all +Multi-Arch: foreign +Depends: ${misc:Depends}, + network-manager (>= ${source:Version}) +Description: NetworkManager configuration to enable connectivity checking + This package contains a configuration file which enables NetworkManager's + connectivity checking functionality. + . + NetworkManager will try to connect to an Ubuntu server to determine the + connection status. + . + This is particularly useful for captive portal detection. + . + No user data is transmitted in the connectivity checks, but merely contacting + the Ubuntu connectivity check servers reveals that the user is running an + Ubuntu(-based) operating system with NetworkManager.
  10. Download patch debian/tests/urfkill-integration

    --- 1.20.0-1/debian/tests/urfkill-integration 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/tests/urfkill-integration 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,98 @@ +#!/bin/sh + +set -e + +echo "+++ Building / adding fake-rfkill.ko" +make -f debian/tests/Makefile fake-rfkill +# poor man's dependency resolver +DEPS=$(modinfo debian/tests/fake-rfkill.ko | sed -n '/depends:/ {s/^.*://; s/[[:space:]]*$//; p}') +[ -z "$DEPS" ] || modprobe "$DEPS" +insmod debian/tests/fake-rfkill.ko + +fake_id=$(rfkill list | grep fake | awk -F: '{ print $1; }') +echo "+++ fake-rfkill.ko is device $fake_id" +echo + + +echo "--- Testing killswitch bringup to match NM state: when URFKILL doesn't run" +echo "+++ stopping urfkill" +# ignore failure, only here, because urfkill probably isn't running yet. +service urfkill stop || true +echo "+++ unblocking device $fake_id" +rfkill unblock $fake_id +echo "+++ stopping network-manager" +service network-manager stop || true +echo "+++ blocking device $fake_id" +rfkill block $fake_id +echo "+++ starting network-manager" +service network-manager start + +echo "+++ Waiting for the devices to settle" +sleep 30 + +echo -n "=== NetworkManager state should now be \"enabled\": " +LC_MESSAGES=C nmcli radio wifi +LC_MESSAGES=C nmcli radio wifi | grep -qc enabled +echo + +echo -n "=== NM saved state: " +grep WirelessEnabled /var/lib/NetworkManager/NetworkManager.state +grep -qc WirelessEnabled=true /var/lib/NetworkManager/NetworkManager.state +echo +echo + +echo "--- Testing killswitch bringup when URFKILL is running: follow URfkill signals" +echo "+++ starting urfkill" +service urfkill start +sleep 15 +echo "+++ blocking device $fake_id" +rfkill block $fake_id +rfkill list + +echo "+++ Waiting for the devices to settle" +sleep 30 + +echo -n "=== NetworkManager state should now be \"disabled\": " +LC_MESSAGES=C nmcli radio wifi +LC_MESSAGES=C nmcli radio wifi | grep -qc disabled +echo + +echo -n "=== NM saved state: " +grep WirelessEnabled /var/lib/NetworkManager/NetworkManager.state +#grep -qc WirelessEnabled=false /var/lib/NetworkManager/NetworkManager.state +echo +echo + +echo "+++ Asking urfkill to unblock device $fake_id" +dbus-send --print-reply --system --dest=org.freedesktop.URfkill /org/freedesktop/URfkill org.freedesktop.URfkill.BlockIdx uint32:$fake_id boolean:false +sleep 5 +echo -n "=== NetworkManager state should now be \"enabled\": " +LC_MESSAGES=C nmcli radio wifi +LC_MESSAGES=C nmcli radio wifi | grep -qc enabled +echo + +echo "+++ Asking urfkill to block device $fake_id again" +dbus-send --print-reply --system --dest=org.freedesktop.URfkill /org/freedesktop/URfkill org.freedesktop.URfkill.BlockIdx uint32:$fake_id boolean:true +sleep 5 +echo -n "=== NetworkManager state should now be \"disabled\": " +LC_MESSAGES=C nmcli radio wifi +LC_MESSAGES=C nmcli radio wifi | grep -qc disabled +echo +echo + +echo "--- Removing fake-rfkill, aggregate state should get back to enabled" +rmmod fake-rfkill +sleep 5 +echo -n "=== Checking that the fake device $fake_id has disappeared: " +rfkill list | ( ! grep -qc fake || exit 1 ) && echo yes || echo no + +echo -n "=== NetworkManager state should now be \"enabled\": " +LC_MESSAGES=C nmcli radio wifi +LC_MESSAGES=C nmcli radio wifi | grep -qc enabled +echo + +#cleanup +make -f debian/tests/Makefile clean-rfkill + +echo OK +exit 0
  11. Download patch debian/source_network-manager.py

    --- 1.20.0-1/debian/source_network-manager.py 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/source_network-manager.py 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,82 @@ +'''Apport package hook for Network Manager + +(c) 2008 Canonical Ltd. +Contributors: +Matt Zimmerman <mdz@canonical.com> +Martin Pitt <martin.pitt@canonical.com> +Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com> +Thomas Bechtold <thomasbechtold@jpberlin.de> + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation; either version 2 of the License, or (at your +option) any later version. See http://www.gnu.org/copyleft/gpl.html for +the full text of the license. +''' + +import os +import subprocess +from apport.hookutils import * + +def _network_interfaces(): + interfaces = [] + output = command_output(['ls', '-1', '/sys/class/net']) + for device in output.split('\n'): + interfaces.append(device) + + return interfaces + +def _device_details(device): + details = command_output(['udevadm', 'info', '--query=all', '--path', '/sys/class/net/%s' % device]) + + # add the only extra thing of use from hal we don't get from udev. + details = details + "\nX: INTERFACE_MAC=" + details = details + command_output(['cat', '/sys/class/net/%s/address' % device]) + return details + +def add_info(report, ui=None): + attach_network(report) + attach_wifi(report) + + #this is the old config file (still read by NM if available) + attach_file_if_exists(report, '/etc/NetworkManager/nm-system-settings.conf', 'nm-system-settings.conf') + + #the new default config file + attach_file_if_exists(report, '/etc/NetworkManager/NetworkManager.conf', 'NetworkManager.conf') + + # attach NetworkManager.state: it gives us good hints in rfkill-related bugs. + attach_file_if_exists(report, '/var/lib/NetworkManager/NetworkManager.state', 'NetworkManager.state') + + for interface in _network_interfaces(): + key = 'NetDevice.%s' % interface + report[key] = _device_details(interface) + + interesting_modules = { 'ndiswrapper' : 'driver-ndiswrapper', + 'ath_hal' : 'driver-madwifi', + 'b44' : 'driver-b44' } + interesting_modules_loaded = [] + tags = [] + for line in open('/proc/modules'): + module = line.split()[0] + if module in interesting_modules: + tags.append(interesting_modules[module]) + interesting_modules_loaded.append(module) + + if interesting_modules_loaded: + report['InterestingModules'] = ' '.join(interesting_modules_loaded) + report.setdefault('Tags', '') + report['Tags'] += ' ' + ' '.join(tags) + + #add output of nmcli + report['nmcli-nm'] = command_output(['nmcli', '-f', 'all', 'gen']) + report['nmcli-dev'] = command_output(['nmcli', '-f', 'all', 'dev']) + report['nmcli-con'] = command_output(['nmcli', '-f', 'all', 'con']) + + +## Only for debugging ## +if __name__ == '__main__': + report = {} + report['CrashDB'] = 'ubuntu' + add_info(report, None) + for key in report: + print('%s: %s' % (key, report[key]))
  12. Download patch debian/tests/wpa-dhclient
  13. Download patch debian/patches/Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch

    --- 1.20.0-1/debian/patches/Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/patches/Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,35 @@ +From: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com> +Date: Thu, 12 May 2016 22:25:32 +0800 +Subject: Provide access to some of NM's interfaces to whoopsie. + +Whoopsie is the crash database reporting daemon. It needs access to some of +the information NM keeps about devices to avoid sending data over the network +when connected to 3G or other systems that are potentially billable. +--- + src/org.freedesktop.NetworkManager.conf | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/src/org.freedesktop.NetworkManager.conf b/src/org.freedesktop.NetworkManager.conf +index 6be1feb..3dd2350 100644 +--- a/src/org.freedesktop.NetworkManager.conf ++++ b/src/org.freedesktop.NetworkManager.conf +@@ -36,6 +36,19 @@ + <allow own="org.freedesktop.NetworkManager.dnsmasq"/> + <allow send_destination="org.freedesktop.NetworkManager.dnsmasq"/> + </policy> ++ <policy user="whoopsie"> ++ <allow send_destination="org.freedesktop.NetworkManager"/> ++ <allow send_destination="org.freedesktop.NetworkManager" ++ send_interface="org.freedesktop.DBus.Introspectable"/> ++ <allow send_destination="org.freedesktop.NetworkManager" ++ send_interface="org.freedesktop.DBus.Properties"/> ++ <allow send_destination="org.freedesktop.NetworkManager" ++ send_interface="org.freedesktop.NetworkManager"/> ++ <allow send_destination="org.freedesktop.NetworkManager" ++ send_interface="org.freedesktop.NetworkManager.Connection.Active"/> ++ <allow send_destination="org.freedesktop.NetworkManager" ++ send_interface="org.freedesktop.NetworkManager.Device"/> ++ </policy> + <policy context="default"> + <deny own="org.freedesktop.NetworkManager"/> +
  14. Download patch debian/tests/nm.py
  15. Download patch debian/network-manager-config-connectivity-ubuntu.install

    --- 1.20.0-1/debian/network-manager-config-connectivity-ubuntu.install 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/network-manager-config-connectivity-ubuntu.install 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1 @@ +debian/20-connectivity-ubuntu.conf usr/lib/NetworkManager/conf.d/
  16. Download patch debian/network-manager.postinst

    --- 1.20.0-1/debian/network-manager.postinst 2019-08-06 20:55:57.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/network-manager.postinst 2019-08-09 09:18:47.000000000 +0000 @@ -20,9 +20,16 @@ set -e case "$1" in configure) - # Create netdev group. Members of group netdev get access to the PolicyKit action - # org.freedesktop.NetworkManager.settings.modify.system without prior authentication - addgroup --quiet --system netdev + # request a reboot (NM tears down interfaces on restart + # which is not the way we want to go) + [ -x /usr/share/update-notifier/notify-reboot-required ] && \ + /usr/share/update-notifier/notify-reboot-required + + update-rc.d -f NetworkManager remove >/dev/null + + if [ -x "/etc/init.d/dbus" ]; then + invoke-rc.d dbus force-reload || true + fi NIF=/etc/network/interfaces if [ -z "$2" ] && [ -f $NIF ]; then @@ -44,6 +51,15 @@ case "$1" in ln -sf /run/NetworkManager/resolv.conf /etc/resolv.conf fi fi + + if dpkg --compare-versions "$2" le-nl "9999"; then + mkdir -p /etc/NetworkManager/conf.d || true + # for old versions, override the global config with a null config, + # but only if the netplan config has not been modified by an user. + if find /etc/netplan -name "*.yaml" | wc -l | grep -qc 0; then + touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf + fi + fi ;; abort-upgrade|abort-deconfigure|abort-remove)
  17. Download patch debian/NetworkManager.conf

    --- 1.20.0-1/debian/NetworkManager.conf 2019-08-06 20:55:57.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/NetworkManager.conf 2019-08-09 09:18:47.000000000 +0000 @@ -3,3 +3,6 @@ plugins=ifupdown,keyfile [ifupdown] managed=false + +[device] +wifi.scan-rand-mac-address=no
  18. Download patch debian/patches/Update-dnsmasq-parameters.patch

    --- 1.20.0-1/debian/patches/Update-dnsmasq-parameters.patch 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/patches/Update-dnsmasq-parameters.patch 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,55 @@ +From: =?utf-8?q?St=C3=A9phane_Graber?= <stephane.graber@canonical.com> +Date: Thu, 12 May 2016 22:44:06 +0800 +Subject: Update dnsmasq parameters + +Disable caching since it's a potential security issue (local dns cache poisoning). + +See also: https://blueprints.launchpad.net/ubuntu/+spec/foundations-p-dns-resolving +--- + src/dns/nm-dns-dnsmasq.c | 4 ++-- + src/dns/nm-dns-manager.c | 6 +++--- + 2 files changed, 5 insertions(+), 5 deletions(-) + +Index: network-manager-1.20.0/src/dns/nm-dns-dnsmasq.c +=================================================================== +--- network-manager-1.20.0.orig/src/dns/nm-dns-dnsmasq.c ++++ network-manager-1.20.0/src/dns/nm-dns-dnsmasq.c +@@ -336,8 +336,8 @@ start_dnsmasq (NMDnsDnsmasq *self) + argv[idx++] = "--no-hosts"; /* don't use /etc/hosts to resolve */ + argv[idx++] = "--bind-interfaces"; + argv[idx++] = "--pid-file=" PIDFILE; +- argv[idx++] = "--listen-address=127.0.0.1"; /* Should work for both 4 and 6 */ +- argv[idx++] = "--cache-size=400"; ++ argv[idx++] = "--listen-address=127.0.1.1"; /* Should work for both 4 and 6 */ ++ argv[idx++] = "--cache-size=0"; + argv[idx++] = "--clear-on-reload"; /* clear cache when dns server changes */ + argv[idx++] = "--conf-file=/dev/null"; /* avoid loading /etc/dnsmasq.conf */ + argv[idx++] = "--proxy-dnssec"; /* Allow DNSSEC to pass through */ +Index: network-manager-1.20.0/src/dns/nm-dns-manager.c +=================================================================== +--- network-manager-1.20.0.orig/src/dns/nm-dns-manager.c ++++ network-manager-1.20.0/src/dns/nm-dns-manager.c +@@ -1485,12 +1485,12 @@ update_dns (NMDnsManager *self, + NM_CAST_STRV_CC (nameservers), + NM_CAST_STRV_CC (options)); + +- /* If caching was successful, we only send 127.0.0.1 to /etc/resolv.conf ++ /* If caching was successful, we only send 127.0.1.1 to /etc/resolv.conf + * to ensure that the glibc resolver doesn't try to round-robin nameservers, + * but only uses the local caching nameserver. + */ + if (caching) { +- const char *lladdr = "127.0.0.1"; ++ const char *lladdr = "127.0.1.1"; + + if (NM_IS_DNS_SYSTEMD_RESOLVED (priv->plugin)) { + /* systemd-resolved uses a different link-local address */ +@@ -1832,7 +1832,7 @@ nm_dns_manager_stop (NMDnsManager *self) + _LOGT ("stopping..."); + + /* If we're quitting, leave a valid resolv.conf in place, not one +- * pointing to 127.0.0.1 if dnsmasq was active. But if we haven't ++ * pointing to 127.0.1.1 if dnsmasq was active. But if we haven't + * done any DNS updates yet, there's no reason to touch resolv.conf + * on shutdown. + */
  19. Download patch debian/patches/series

    --- 1.20.0-1/debian/patches/series 2019-08-06 20:55:57.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/patches/series 2019-08-09 09:18:47.000000000 +0000 @@ -1,2 +1,9 @@ Force-online-state-with-unmanaged-devices.patch Don-t-setup-Sleep-Monitor-if-not-booted-with-systemd.patch + +# Ubuntu patches +Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch +Update-dnsmasq-parameters.patch +Disable-core-with-expect.patch +libnm-Check-self-still-NMManager-or-not.patch +
  20. Download patch debian/patches/libnm-Check-self-still-NMManager-or-not.patch

    --- 1.20.0-1/debian/patches/libnm-Check-self-still-NMManager-or-not.patch 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/patches/libnm-Check-self-still-NMManager-or-not.patch 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,33 @@ +From: "Shih-Yuan Lee (FourDollars)" <sylee@canonical.com> +Date: Tue, 17 May 2016 17:26:06 +0800 +Subject: libnm: Check self still NMManager or not + +Return if self is not NMManager or it will crash. +--- + libnm/nm-manager.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +Index: network-manager-1.20.0/libnm/nm-manager.c +=================================================================== +--- network-manager-1.20.0.orig/libnm/nm-manager.c ++++ network-manager-1.20.0/libnm/nm-manager.c +@@ -967,7 +967,7 @@ find_active_connection_by_path (NMManage + static void + recheck_pending_activations (NMManager *self) + { +- NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); ++ NMManagerPrivate *priv; + CList *iter, *safe; + NMActiveConnection *candidate; + const GPtrArray *devices; +@@ -977,6 +977,10 @@ recheck_pending_activations (NMManager * + + object_manager = _nm_object_get_dbus_object_manager (NM_OBJECT (self)); + ++ g_return_if_fail (NM_IS_MANAGER (self)); ++ ++ priv = NM_MANAGER_GET_PRIVATE (self); ++ + /* For each pending activation, look for an active connection that has the + * pending activation's object path, where the active connection and its + * device have both updated their properties to point to each other, and
  21. Download patch debian/network-manager-config-connectivity-ubuntu.postinst

    --- 1.20.0-1/debian/network-manager-config-connectivity-ubuntu.postinst 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/network-manager-config-connectivity-ubuntu.postinst 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +if [ "$1" = configure ]; then + invoke-rc.d network-manager force-reload || true +fi + +#DEBHELPER#
  22. Download patch debian/tests/fake-rfkill.c

    --- 1.20.0-1/debian/tests/fake-rfkill.c 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/tests/fake-rfkill.c 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,51 @@ +#include <linux/rfkill.h> +#include <linux/module.h> + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Johannes Berg <johannes@sipsolutions.net>"); + +static struct rfkill *rfk; + +static void test_poll(struct rfkill *rfkill, void *data) +{ + printk(KERN_DEBUG "poll test rfkill\n"); +} + +static void test_query(struct rfkill *rfkill, void *data) +{ + printk(KERN_DEBUG "query test rfkill\n"); +} + +static int test_set_block(void *data, bool blocked) +{ + printk(KERN_DEBUG "set test rfkill (%s)\n", + blocked ? "blocked" : "active"); + return 0; +} + +static struct rfkill_ops ops = { + .poll = test_poll, + .query = test_query, + .set_block = test_set_block, +}; + +int mod_init(void) +{ + int err; + + rfk = rfkill_alloc("fake", NULL, RFKILL_TYPE_WLAN, &ops, NULL); + if (!rfk) + return -ENOMEM; + err = rfkill_register(rfk); + if (err) + rfkill_destroy(rfk); + return err; +} +module_init(mod_init); + +void mod_exit(void) +{ + rfkill_unregister(rfk); + rfkill_destroy(rfk); +} +module_exit(mod_exit);
  23. Download patch debian/20-connectivity-ubuntu.conf

    --- 1.20.0-1/debian/20-connectivity-ubuntu.conf 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/20-connectivity-ubuntu.conf 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,2 @@ +[connectivity] +uri=http://connectivity-check.ubuntu.com/
  24. Download patch debian/10-dns-resolved.conf

    --- 1.20.0-1/debian/10-dns-resolved.conf 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/10-dns-resolved.conf 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,5 @@ +[main] +# We need to specify "dns=systemd-resolved" as for the time being our +# /etc/resolv.conf points to resolvconf's generated file instead of +# systemd-resolved's, so the auto-detection does not work. +dns=systemd-resolved
  25. Download patch debian/10-globally-managed-devices.conf

    --- 1.20.0-1/debian/10-globally-managed-devices.conf 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/10-globally-managed-devices.conf 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,2 @@ +[keyfile] +unmanaged-devices=*,except:type:wifi,except:type:gsm,except:type:cdma
  26. Download patch debian/patches/Import-some-missing-WoWLAN-patches.patch
  27. Download patch debian/patches/dns-manager-don-t-merge-split-DNS-search-domains.patch

    --- 1.20.0-1/debian/patches/dns-manager-don-t-merge-split-DNS-search-domains.patch 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/patches/dns-manager-don-t-merge-split-DNS-search-domains.patch 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,88 @@ +From: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com> +Date: Wed, 15 Jun 2016 16:07:27 +0300 +Subject: dns-manager: don't merge split-DNS search domains + +Signed-off-by: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com> +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/network-manager/+bug/1592721 +--- + src/dns/nm-dns-manager.c | 36 ++++++++++++++++++++---------------- + 1 file changed, 20 insertions(+), 16 deletions(-) + +Index: b/src/dns/nm-dns-manager.c +=================================================================== +--- a/src/dns/nm-dns-manager.c ++++ b/src/dns/nm-dns-manager.c +@@ -295,7 +295,7 @@ + } + + static void +-merge_one_ip4_config (NMResolvConfData *rc, NMIP4Config *src) ++merge_one_ip4_config (NMResolvConfData *rc, NMIP4Config *src, gboolean never_default) + { + guint32 num, num_domains, num_searches, i; + +@@ -308,13 +308,14 @@ + num_domains = nm_ip4_config_get_num_domains (src); + num_searches = nm_ip4_config_get_num_searches (src); + +- for (i = 0; i < num_searches; i++) { +- const char *search; +- +- search = nm_ip4_config_get_search (src, i); +- if (!domain_is_valid (search, FALSE)) +- continue; +- add_string_item (rc->searches, search); ++ if (!never_default) { ++ for (i = 0; i < num_searches; i++) { ++ const char *search; ++ search = nm_ip4_config_get_search (src, i); ++ if (!domain_is_valid (search, FALSE)) ++ continue; ++ add_string_item (rc->searches, search); ++ } + } + + if (num_domains > 1 || !num_searches) { +@@ -351,7 +352,7 @@ + } + + static void +-merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src, const char *iface) ++merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src, const char *iface, gboolean never_default) + { + guint32 num, num_domains, num_searches, i; + +@@ -378,13 +379,14 @@ + num_domains = nm_ip6_config_get_num_domains (src); + num_searches = nm_ip6_config_get_num_searches (src); + +- for (i = 0; i < num_searches; i++) { +- const char *search; +- +- search = nm_ip6_config_get_search (src, i); +- if (!domain_is_valid (search, FALSE)) +- continue; +- add_string_item (rc->searches, search); ++ if (!never_default) { ++ for (i = 0; i < num_searches; i++) { ++ const char *search; ++ search = nm_ip6_config_get_search (src, i); ++ if (!domain_is_valid (search, FALSE)) ++ continue; ++ add_string_item (rc->searches, search); ++ } + } + + if (num_domains > 1 || !num_searches) { +@@ -412,9 +414,9 @@ + NMDnsIPConfigData *data) + { + if (NM_IS_IP4_CONFIG (data->config)) +- merge_one_ip4_config (rc, (NMIP4Config *) data->config); ++ merge_one_ip4_config (rc, (NMIP4Config *) data->config, nm_ip4_config_get_never_default (data->config)); + else if (NM_IS_IP6_CONFIG (data->config)) +- merge_one_ip6_config (rc, (NMIP6Config *) data->config, data->iface); ++ merge_one_ip6_config (rc, (NMIP6Config *) data->config, data->iface, nm_ip4_config_get_never_default (data->config)); + else + g_return_if_reached (); + }
  28. Download patch debian/tests/Makefile

    --- 1.20.0-1/debian/tests/Makefile 1970-01-01 00:00:00.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/tests/Makefile 2019-08-09 09:18:47.000000000 +0000 @@ -0,0 +1,8 @@ + +obj-m += fake-rfkill.o + +fake-rfkill: + make -C /lib/modules/$(shell uname -r)/build KBUILD_SRC=/lib/modules/$(shell uname -r)/build M=$(shell pwd)/debian/tests + +clean-rfkill: + make -C /lib/modules/$(shell uname -r)/build KBUILD_SRC=/lib/modules/$(shell uname -r)/build M=$(shell pwd)/debian/tests clean
  29. Download patch debian/gbp.conf

    --- 1.20.0-1/debian/gbp.conf 2019-08-06 20:55:57.000000000 +0000 +++ 1.20.0-1ubuntu1/debian/gbp.conf 2019-08-09 09:18:47.000000000 +0000 @@ -2,3 +2,4 @@ pristine-tar = True patch-numbers = False debian-branch = master +debian-tag = ubuntu/%(version)s

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: peony

peony (1.1.5.1-0ubuntu1) disco; urgency=medium * Bugfix-only: - Fix the bug that failed to restore a file from trash. (LP: #1820465) - Fix a lintian info. -- handsome_feng <jianfengli@ubuntukylin.com> Mon, 08 Apr 2019 16:03:13 +0800 peony (1.1.5-1build1) disco; urgency=medium * No-change rebuild against latest exempi -- Jeremy Bicha <jbicha@ubuntu.com> Thu, 10 Jan 2019 09:40:31 -0500

Modifications :
  1. Download patch src/peony-kdisk-createformat.h

    --- 1.1.5-1/src/peony-kdisk-createformat.h 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/peony-kdisk-createformat.h 2019-04-08 07:31:16.000000000 +0000 @@ -1,25 +1,3 @@ -/* - * Peony - * - * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. - * - * Peony is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * Peony is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Modified by: quankang <quankang@kylinos.cn> - */ - #ifndef kDISK_CREATEFORMAT_H #define KDISK_CREATEFORMAT_H
  2. Download patch src/file-manager/test-widget.c

    --- 1.1.5-1/src/file-manager/test-widget.c 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/file-manager/test-widget.c 2019-04-08 07:31:16.000000000 +0000 @@ -5,7 +5,6 @@ * Copyright (C) 2001 - Mikael Hermansson <tyan@linux.se> * Copyright (C) 2003 - Gustavo Giráldez <gustavo.giraldez@gmx.net> * Copyright (C) 2014 - Sébastien Wilmet <swilmet@gnome.org> - * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * GtkSourceView is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,8 +19,6 @@ * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Modified by: quankang <quankang@kylinos.cn> */ /*
  3. Download patch src/file-manager/test-widget.h

    --- 1.1.5-1/src/file-manager/test-widget.h 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/file-manager/test-widget.h 2019-04-08 07:31:16.000000000 +0000 @@ -5,7 +5,6 @@ * Copyright (C) 2001 - Mikael Hermansson <tyan@linux.se> * Copyright (C) 2003 - Gustavo Giráldez <gustavo.giraldez@gmx.net> * Copyright (C) 2014 - Sébastien Wilmet <swilmet@gnome.org> - * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. * * GtkSourceView is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,8 +19,6 @@ * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Modified by: quankang <quankang@kylinos.cn> */ #ifndef TEST_WIDGET_H
  4. Download patch debian/libpeony-extension1.symbols

    --- 1.1.5-1/debian/libpeony-extension1.symbols 2018-12-27 12:43:29.000000000 +0000 +++ 1.1.5.1-0ubuntu1/debian/libpeony-extension1.symbols 2019-04-08 08:03:13.000000000 +0000 @@ -1,4 +1,5 @@ libpeony-extension.so.1 libpeony-extension1 #MINVER# +* Build-Depends-Package: libpeony-extension-dev peony_column_get_type@Base 1.1.1 peony_column_new@Base 1.1.1 peony_column_provider_get_columns@Base 1.1.1
  5. Download patch src/file-manager/mime-utils.c

    --- 1.1.5-1/src/file-manager/mime-utils.c 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/file-manager/mime-utils.c 2019-04-08 07:31:16.000000000 +0000 @@ -1,24 +1,3 @@ -/* - * Peony - * - * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. - * - * Peony is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * Peony is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Modified by: quankang <quankang@kylinos.cn> - */ #include "mime-utils.h" #include "office-utils.h" @@ -129,4 +108,4 @@ gboolean is_excel_doc(char* filename){ g_free(mime_type); return found; -} +} \ No newline at end of file
  6. Download patch src/file-manager/navigation-window-interface.h

    --- 1.1.5-1/src/file-manager/navigation-window-interface.h 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/file-manager/navigation-window-interface.h 2019-04-08 07:31:16.000000000 +0000 @@ -1,24 +1,3 @@ -/* - * Peony - * - * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. - * - * Peony is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * Peony is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Modified by: quankang <quankang@kylinos.cn> - */ #include "libpeony-private/peony-window-info.h" void peony_navigation_window_set_latest_pdf_preview_file_by_window_info (PeonyWindowInfo *window_info, char* filename);
  7. Download patch src/file-manager/mime-utils.h

    --- 1.1.5-1/src/file-manager/mime-utils.h 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/file-manager/mime-utils.h 2019-04-08 07:31:16.000000000 +0000 @@ -1,25 +1,3 @@ -/* - * Peony - * - * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. - * - * Peony is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * Peony is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Modified by: quankang <quankang@kylinos.cn> - */ - #include <glib-2.0/glib.h> #include <gio/gio.h>
  8. Download patch src/file-manager/office-utils.c

    --- 1.1.5-1/src/file-manager/office-utils.c 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/file-manager/office-utils.c 2019-04-08 07:31:16.000000000 +0000 @@ -1,25 +1,3 @@ -/* - * Peony - * - * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. - * - * Peony is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * Peony is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Modified by: quankang <quankang@kylinos.cn> - */ - #include "mime-utils.h" #include "office-utils.h" #include <gdk/gdkx.h> @@ -478,4 +456,4 @@ void excel2html_by_window_internal_unoco g_child_watch_add (pid, unoconv_child_watch_cb2, window); -} +} \ No newline at end of file
  9. Download patch src/file-manager/office-utils.h

    --- 1.1.5-1/src/file-manager/office-utils.h 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/file-manager/office-utils.h 2019-04-08 07:31:16.000000000 +0000 @@ -1,25 +1,3 @@ -/* - * Peony - * - * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. - * - * Peony is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * Peony is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Modified by: quankang <quankang@kylinos.cn> - */ - #include <glib-2.0/glib.h> #include <glib/gstdio.h> #include "navigation-window-interface.h"
  10. Download patch src/peony-kdisk-format.c

    --- 1.1.5-1/src/peony-kdisk-format.c 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/peony-kdisk-format.c 2019-04-08 07:31:16.000000000 +0000 @@ -1,32 +1,3 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ - -/* - * Peony - * - * Copyright (C) 1999, 2000 Red Hat, Inc. - * Copyright (C) 1999, 2000, 2001 Eazel, Inc. - * Copyright (C) 2018, Tianjin KYLIN Information Technology Co., Ltd. - * - * Peony is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * Peony is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Authors: Elliot Lee <sopwith@redhat.com> - * John Sullivan <sullivan@eazel.com> - * Darin Adler <darin@bentspoon.com> - * Modified by: liupeng <liupeng@kylinos.cn> - */ - #include "peony-kdisk-format.h" typedef struct {
  11. Download patch libpeony-private/peony-file-operations.c

    --- 1.1.5-1/libpeony-private/peony-file-operations.c 2019-01-05 07:45:38.000000000 +0000 +++ 1.1.5.1-0ubuntu1/libpeony-private/peony-file-operations.c 2019-03-26 06:58:33.000000000 +0000 @@ -4091,10 +4091,6 @@ copy_move_file (CopyMoveJob *copy_job, gboolean readonly_source_fs, gboolean last_item) { - //sikp the errors dialog (when doing drag and drop on MyComputer). - if(!g_file_get_path(src)){ - return; - } GFile *dest, *new_dest; GError *error; GFileCopyFlags flags;
  12. Download patch src/peony-kdisk-format.h

    --- 1.1.5-1/src/peony-kdisk-format.h 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/peony-kdisk-format.h 2019-04-08 07:31:16.000000000 +0000 @@ -1,32 +1,3 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ - -/* - * Peony - * - * Copyright (C) 1999, 2000 Red Hat, Inc. - * Copyright (C) 1999, 2000, 2001 Eazel, Inc. - * Copyright (C) 2018, Tianjin KYLIN Information Technology Co., Ltd. - * - * Peony is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * Peony is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Authors: Elliot Lee <sopwith@redhat.com> - * John Sullivan <sullivan@eazel.com> - * Darin Adler <darin@bentspoon.com> - * Modified by: liupeng <liupeng@kylinos.cn> - */ - #ifndef KDISK_FORMAT_H #define KDISK_FORMAT_H
  13. Download patch src/file-manager/pdfviewer.c

    --- 1.1.5-1/src/file-manager/pdfviewer.c 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/file-manager/pdfviewer.c 2019-04-08 07:31:16.000000000 +0000 @@ -1,25 +1,3 @@ -/* - * Peony - * - * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. - * - * Peony is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * Peony is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Modified by: quankang <quankang@kylinos.cn> - */ - #include "pdfviewer.h" static gboolean is_busy;
  14. Download patch src/file-manager/pdfviewer.h

    --- 1.1.5-1/src/file-manager/pdfviewer.h 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/file-manager/pdfviewer.h 2019-04-08 07:31:16.000000000 +0000 @@ -1,25 +1,3 @@ -/* - * Peony - * - * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. - * - * Peony is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * Peony is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Modified by: quankang <quankang@kylinos.cn> - */ - #include <gtk/gtk.h> #include <atril-document.h> #include <atril-view.h>
  15. Download patch src/peony-kdisk-createformat.c

    --- 1.1.5-1/src/peony-kdisk-createformat.c 2019-01-05 07:45:39.000000000 +0000 +++ 1.1.5.1-0ubuntu1/src/peony-kdisk-createformat.c 2019-04-08 07:31:16.000000000 +0000 @@ -1,25 +1,3 @@ -/* - * Peony - * - * Copyright (C) 2019, Tianjin KYLIN Information Technology Co., Ltd. - * - * Peony is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * Peony is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - * - * Modified by: quankang <quankang@kylinos.cn> - */ - #include "peony-kdisk-createformat.h" typedef struct {
  16. Download patch libpeony-private/peony-icon-container.c

    --- 1.1.5-1/libpeony-private/peony-icon-container.c 2019-01-05 07:45:38.000000000 +0000 +++ 1.1.5.1-0ubuntu1/libpeony-private/peony-icon-container.c 2019-03-26 06:58:33.000000000 +0000 @@ -5977,7 +5977,7 @@ motion_notify_event (GtkWidget *widget, switch (details->drag_state) { case DRAG_STATE_MOVE_OR_COPY: - if (details->drag_started) + if (details->drag_started || container->name) { break; }

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: ukui-control-center

ukui-control-center (1.1.7.1-0ubuntu1) disco; urgency=medium * Bugfix-only: - Don't launch mate-panel when change theme. -- handsome_feng <jianfengli@ubuntukylin.com> Tue, 16 Apr 2019 20:16:46 +0800 ukui-control-center (1.1.7-0ubuntu1) disco; urgency=medium * bugfix-only: - change appearance.fm from "lower" to "minimize". (LP: #1821688) - rebuild shell.ui fix label not fully shown after fonts zooming in. (LP: #1805103) - Fix the wrong gsettings of keybindings. - Fix the translations to avoid wrong layout when some string is too long. - Add missing utc zone. * debian/control: - Bump Standards-Version to 4.3.0. -- handsome_feng <jianfengli@ubuntukylin.com> Wed, 10 Apr 2019 15:33:42 +0800

Modifications :
  1. Download patch data/zoneUtc
  2. Download patch shell/shell.ui
  3. Download patch panels/appearance/appearance-media.h

    --- 1.1.6-2/panels/appearance/appearance-media.h 1970-01-01 00:00:00.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/appearance/appearance-media.h 2019-01-21 02:12:39.000000000 +0000 @@ -0,0 +1,22 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright (C) 2016 Tianjin KYLIN Information Technology Co., Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ +#include "appearance.h" +void media_init(AppearanceData* data); +void media_shutdown(AppearanceData* data);
  4. Download patch po/tr.po
  5. Download patch po/es.po
  6. Download patch panels/user-accounts/user-accounts.c

    --- 1.1.6-2/panels/user-accounts/user-accounts.c 2018-09-05 07:32:34.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/user-accounts/user-accounts.c 2019-01-21 02:12:39.000000000 +0000 @@ -995,6 +995,9 @@ void change_face_callback(GObject *objec g_error_free(error); return; } + + if (g_strrstr(user->iconfile, "stock_person")) + user->iconfile = "/usr/share/pixmaps/faces/stock_person.png"; GdkPixbuf *buf = gdk_pixbuf_new_from_file(user->iconfile, NULL); buf = gdk_pixbuf_scale_simple(buf, FACEHEIGHT, FACEWIDTH, GDK_INTERP_BILINEAR); gtk_image_set_from_pixbuf(GTK_IMAGE(user->image0), buf); @@ -1013,8 +1016,11 @@ void change_face(GtkWidget *widget, gpoi GdkPixbuf *pixbuf = gtk_image_get_pixbuf(GTK_IMAGE(image)); const char *filename = g_object_get_data (G_OBJECT (pixbuf), "filename"); - if (filename) + if (filename){ user->iconfile = (gchar *)filename; + if (g_strrstr(user->iconfile, "stock_person")) + user->iconfile = "/usr/share/pixmaps/faces/stock_person_nobg.png"; + } g_dbus_proxy_call(user->proxy, "SetIconFile", g_variant_new("(s)", user->iconfile), @@ -1772,6 +1778,8 @@ void init_user_info(const gchar *object_ value = g_dbus_proxy_get_cached_property(user->proxy, "IconFile"); size = g_variant_get_size(value); user->iconfile = (char *)g_variant_get_string(value, &size); + if (g_strrstr(user->iconfile, "stock_person")) + user->iconfile = "/usr/share/pixmaps/faces/stock_person.png"; value = g_dbus_proxy_get_cached_property(user->proxy, "PasswordMode"); user->passwdtype = g_variant_get_int32(value); @@ -1799,7 +1807,7 @@ void init_root_info() user->currentuser = TRUE; user->autologin = FALSE; user->username = g_get_user_name(); - user->iconfile = "/usr/share/pixmaps/faces/stock_person.svg"; + user->iconfile = "/usr/share/pixmaps/faces/stock_person.png"; //OobsUser *obsuser = oobs_user_new(user->username); //user->logined = oobs_user_get_active(obsuser); if (g_strcmp0((const char *)user->username, "root") == 0) @@ -2382,7 +2390,7 @@ createUserDone(GObject *object, GAsyncRe NULL, "org.freedesktop.Accounts", path, "org.freedesktop.Accounts.User", NULL, &error); if (user->iconfile == NULL) - user->iconfile = "/usr/share/pixmaps/faces/stock_person.png"; + user->iconfile = "/usr/share/pixmaps/faces/stock_person_nobg.png"; g_dbus_proxy_call(user->proxy, "SetIconFile", g_variant_new("(s)", user->iconfile),
  7. Download patch panels/default-app/default-app.c

    --- 1.1.6-2/panels/default-app/default-app.c 2018-09-05 07:32:34.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/default-app/default-app.c 2019-04-10 05:41:59.000000000 +0000 @@ -460,7 +460,7 @@ fill_combo_box(GtkIconTheme* theme, GtkC if(g_strrstr(icon_name,"webbrowser")){ icon_name = g_strdup("webbrowser-app"); } - if (icon_name == NULL) + if (icon_name == NULL || g_strcmp0(icon_name, "display-im6.q16") == 0) { /* Default icon */ icon_name = g_strdup("binary");
  8. Download patch po/pt.po
  9. Download patch po/LINGUAS

    --- 1.1.6-2/po/LINGUAS 2018-09-05 07:32:34.000000000 +0000 +++ 1.1.7.1-0ubuntu1/po/LINGUAS 2019-01-21 02:10:23.000000000 +0000 @@ -1,6 +1,10 @@ # please keep this list sorted alphabetically # +es +fr ko +pt +ru tr zh_CN
  10. Download patch debian/control

    --- 1.1.6-2/debian/control 2018-10-17 06:04:33.000000000 +0000 +++ 1.1.7.1-0ubuntu1/debian/control 2019-04-10 08:33:47.000000000 +0000 @@ -40,7 +40,7 @@ Build-Depends: debhelper (>= 11), libnotify-dev, libpulse-dev, libukui-menu-dev -Standards-Version: 4.2.1 +Standards-Version: 4.3.0 Homepage: https://github.com/ukui/ukui-control-center Vcs-Git: https://github.com/ukui/ukui-control-center.git Vcs-Browser: https://github.com/ukui/ukui-control-center
  11. Download patch po/POTFILES.in

    --- 1.1.6-2/po/POTFILES.in 2018-09-25 03:08:45.000000000 +0000 +++ 1.1.7.1-0ubuntu1/po/POTFILES.in 2019-01-21 02:12:39.000000000 +0000 @@ -18,12 +18,15 @@ panels/volume-control/gvc-sound-theme-ch panels/volume-control/gvc-speaker-test.c panels/volume-control/sound-theme-file-utils.c panels/appearance/appearance-desktop.c +panels/appearance/appearance-fm.c panels/appearance/appearance-theme.c +panels/appearance/appearance-media.c panels/appearance/appearance-windows.c panels/appearance/font_render.ui panels/appearance/ukui-wp-item.c panels/keyboard/ukui-keyboard-properties-layout-chooser.ui panels/keyboard/shortcut_dialog.ui +panels/mouse/mouse-setting.c panels/network-proxy/network.ui panels/session-properties/gsm-app-dialog.c panels/session-properties/gsm-properties-dialog.c
  12. Download patch panels/appearance/ukui-wp-xml.c

    --- 1.1.6-2/panels/appearance/ukui-wp-xml.c 2018-09-05 07:32:34.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/appearance/ukui-wp-xml.c 2019-01-21 02:12:39.000000000 +0000 @@ -21,7 +21,7 @@ #include "ukui-wp-xml.h" #include <libxml/parser.h> #define WALLPAPER_DATADIR "/usr/share/ukui-background-properties" -#define UBUNTUUKUI_BACKGROUND "bionic-ubuntukylin-wallpapers.xml" +#define UBUNTUUKUI_BACKGROUND "cosmic-ubuntukylin-wallpapers.xml" static gboolean ukui_wp_xml_get_bool(const xmlNode* parent, const char* prop_name) { gboolean ret_val = FALSE; @@ -373,9 +373,51 @@ static void ukui_wp_xml_load_from_dir(co return; } directory = g_file_new_for_path(path); - char* fullpath = g_build_filename(path, UBUNTUUKUI_BACKGROUND, NULL); - ukui_wp_xml_load_xml(data, fullpath); - g_free(fullpath); + + // get ubuntuukui_background path + FILE * fp = NULL; + char buffer[1024]; + gchar ** tmp; + fp = popen(g_strdup_printf("lsb_release -a"), "r"); + if (fp){ + while (fgets(buffer, 1024, fp)) { + if (strstr(buffer, "Codename:")){ + tmp = g_strsplit(buffer, "\t", -1); + break; + } + } + } +// char * fullpath = g_build_filename(path, g_strdup_printf("%s-ubuntukylin-wallpapers.xml", g_strstrip(tmp[1])), NULL); + //char* fullpath = g_build_filename(path, UBUNTUUKUI_BACKGROUND, NULL); + +// if (g_file_test(fullpath, G_FILE_TEST_EXISTS)){ +// ukui_wp_xml_load_xml(data, fullpath); +// g_free(fullpath); +// } +// else{ + if (!g_file_test(path, G_FILE_TEST_IS_DIR) || g_file_test(path, G_FILE_TEST_IS_SYMLINK)){ + g_printf("path error!"); + } + GDir * dir; + if (!(dir = g_dir_open(path, 0, NULL))){ + g_printf("Directory Opened Error!\n"); + return; + } + gchar * abspath = NULL; + const gchar * filename; + while(filename = g_dir_read_name(dir)){ + abspath = g_strjoin("/", path, filename, NULL); + if (g_file_test(abspath, G_FILE_TEST_IS_DIR) || g_file_test(abspath, G_FILE_TEST_IS_SYMLINK)){ + continue; + } + else if (g_str_has_suffix(abspath, "xml")){ + ukui_wp_xml_load_xml(data, abspath); + } + } + g_dir_close(dir); + g_free(abspath); +// } + ukui_wp_xml_add_monitor(directory, data); }
  13. Download patch panels/appearance/appearance-theme.c

    --- 1.1.6-2/panels/appearance/appearance-theme.c 2018-09-25 03:08:45.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/appearance/appearance-theme.c 2019-04-16 12:15:16.000000000 +0000 @@ -42,7 +42,7 @@ struct _ThemeData { ThemeData themedata; static gboolean mute_lock; -gchar * iconblack = "ukui-icon-theme"; +gchar * iconblack = "ukui-icon-theme"; gchar * iconblue = "ukui-icon-theme-one"; static gboolean reset_lock(gpointer user_data){ @@ -52,23 +52,18 @@ static gboolean reset_lock(gpointer user } static void set_theme_color(GtkWidget * widget, GdkEvent *event, gpointer user_data){ - int systemback; - if(mute_lock){ - mute_lock = FALSE; - g_settings_set_string(themedata.theme_setting,MARCO_THEME_KEY, user_data); - g_settings_set_string(themedata.theme_gtk_setting,GTK_THEME_KEY, user_data); - if (g_strrstr(user_data, "blue")) - g_settings_set_string(themedata.theme_gtk_setting, ICON_THEME_KEY, iconblue); - else - g_settings_set_string(themedata.theme_gtk_setting, ICON_THEME_KEY, iconblack); - - // systemback = system("/usr/bin/killall mate-panel"); - systemback = system("/usr/bin/nohup /usr/bin/mate-panel --replace &"); - - g_timeout_add(5000, (GSourceFunc)reset_lock, NULL); - return; - } - gtk_label_set_text(GTK_LABEL(themedata.appearance_show_label), _("Set up disable. Please wait at least 5 seconds that system subject will restart")); + if (mute_lock) { + mute_lock = FALSE; + g_settings_set_string(themedata.theme_setting,MARCO_THEME_KEY, user_data); + g_settings_set_string(themedata.theme_gtk_setting,GTK_THEME_KEY, user_data); + if (g_strrstr(user_data, "blue")) + g_settings_set_string(themedata.theme_gtk_setting, ICON_THEME_KEY, iconblue); + else + g_settings_set_string(themedata.theme_gtk_setting, ICON_THEME_KEY, iconblack); + + g_timeout_add(100, (GSourceFunc)reset_lock, NULL); + return; + } } static void component_init(){
  14. Download patch panels/appearance/appearance-fm.c
  15. Download patch panels/keyboard/ukui-keybinding-properties.c

    --- 1.1.6-2/panels/keyboard/ukui-keybinding-properties.c 2018-09-05 07:32:34.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/keyboard/ukui-keybinding-properties.c 2019-01-21 02:12:39.000000000 +0000 @@ -16,7 +16,7 @@ #include "eggcellrendererkeys.h" #include "dconf-util.h" -#define GSETTINGS_KEYBINDINGS_DIR "/org/mate/desktop/keybindings/" +#define GSETTINGS_KEYBINDINGS_DIR "/org/ukui/desktop/keybindings/" #define GSETTINGS_KEYBINDINGS_SYSTEM "/org/gnome/desktop/wm/keybindings/" #define CUSTOM_KEYBINDING_SCHEMA "org.ukui.control-center.keybinding" #define MARCO_KEY "org.gnome.desktop.wm.keybindings" Binary files 1.1.6-2/panels/mouse/double-click-maybe.png and 1.1.7.1-0ubuntu1/panels/mouse/double-click-maybe.png differ Binary files 1.1.6-2/panels/mouse/double-click-off.png and 1.1.7.1-0ubuntu1/panels/mouse/double-click-off.png differ Binary files 1.1.6-2/panels/mouse/double-click-on.png and 1.1.7.1-0ubuntu1/panels/mouse/double-click-on.png differ
  16. Download patch panels/appearance/appearance-fm.h

    --- 1.1.6-2/panels/appearance/appearance-fm.h 1970-01-01 00:00:00.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/appearance/appearance-fm.h 2019-01-21 02:12:39.000000000 +0000 @@ -0,0 +1,22 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright (C) 2016 Tianjin KYLIN Information Technology Co., Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ +#include "appearance.h" +void filemanager_init(AppearanceData* data); +void filemanager_shutdown(AppearanceData* data);
  17. Download patch data/Makefile.am

    --- 1.1.6-2/data/Makefile.am 2018-09-05 07:32:34.000000000 +0000 +++ 1.1.7.1-0ubuntu1/data/Makefile.am 2019-01-21 02:12:39.000000000 +0000 @@ -2,13 +2,13 @@ rcdir = $(datadir)/themes/ukui-theme/g zonedir = $(datadir)/zoneinfo saversdir = $(datadir)/applications/screensavers rc_DATA = ukuicc.rc -zone_DATA = zone_utc +zone_DATA = zone_utc zoneUtc savers_DATA = savers-desktop/* icondir = $(pkgdatadir)/icons facedir = $(datadir)/pixmaps/faces icon_DATA = 打印机.png 电源管理.png 个性化.png 键盘.png 开机启动.png 默认应用程序.png 日期和时间.png 声音.png 鼠标.png 网络代理.png 网络连接.png 显示器.png 用户账号.png 系统检测.png AC.png battery.png -face_DATA = stock_person.png +face_DATA = stock_person.png stock_person_nobg.png SUBDIRS = color EXTRA_DIST = $(rc_DATA) $(zone_DATA) $(icon_DATA) $(face_DATA) $(savers_DATA) Binary files 1.1.6-2/data/stock_person_nobg.png and 1.1.7.1-0ubuntu1/data/stock_person_nobg.png differ Binary files 1.1.6-2/data/stock_person.png and 1.1.7.1-0ubuntu1/data/stock_person.png differ
  18. Download patch po/zh_CN.po
  19. Download patch panels/appearance/Makefile.am

    --- 1.1.6-2/panels/appearance/Makefile.am 2018-09-25 03:08:45.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/appearance/Makefile.am 2019-01-21 02:12:39.000000000 +0000 @@ -22,6 +22,8 @@ libappearance_la_SOURCES= \ appearance-desktop.c \ appearance-theme.c \ appearance-theme.h \ + appearance-media.c \ + appearance-media.c \ ukui-wp-item.c \ ukui-wp-item.h \ ukui-wp-xml.c \ @@ -33,6 +35,8 @@ libappearance_la_SOURCES= \ appearance-font.h \ appearance-windows.c \ appearance-windows.h \ + appearance-fm.c \ + appearance-fm.h \ $(NULL) libappearance_la_LIBADD = \
  20. Download patch panels/appearance/appearance-windows.c

    --- 1.1.6-2/panels/appearance/appearance-windows.c 2018-09-25 03:08:45.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/appearance/appearance-windows.c 2019-03-26 09:16:02.000000000 +0000 @@ -1,4 +1,4 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- * * Copyright (C) 2016 Tianjin KYLIN Information Technology Co., Ltd. * @@ -28,113 +28,55 @@ static GtkBuilder * builder = NULL; -GtkWidget * doublecombo; -GtkWidget * middlecombo; -GtkWidget * rightcombo; - static GSettings * settings = NULL; -#define DOUBLE "action-double-click-titlebar" -#define MIDDLE "action-middle-click-titlebar" -#define RIGHT "action-right-click-titlebar" - - -static void on_combo_changed_cb(GtkComboBox * combobox, gpointer userdata){ - gint current; - gchar * key = (gchar * )userdata; - - current = gtk_combo_box_get_active(GTK_COMBO_BOX(combobox)); - if(current == -1) - return; - - if(current == 0) - g_settings_set_string(settings, key, "none"); - else if(current == 1){ - gchar * filename = "/usr/share/glib-2.0/schemas/org.mate.marco.gschema.xml"; - if (g_file_test(filename, G_FILE_TEST_EXISTS)) - g_settings_set_string(settings, key, "toggle_maximize"); - else - g_settings_set_string(settings, key, "toggle-maximize"); - } - else if(current == 2) - g_settings_set_string(settings, key, "lower"); -} -static void setup_combo(){ - gchar *doubleCur, *middleCur, *rightCur ; - gint doubleIndex, middleIndex, rightIndex; - - doubleCur = g_settings_get_string(settings, DOUBLE); - middleCur = g_settings_get_string(settings, MIDDLE); - rightCur = g_settings_get_string(settings, RIGHT); - - //double combo box - if(strcmp(doubleCur, "none") == 0) - doubleIndex = 0; - else if (strcmp(doubleCur, "toggle-maximize") == 0 || strcmp(doubleCur, "toggle_maximize") == 0) - doubleIndex = 1; - else if (strcmp(doubleCur, "lower") == 0) - doubleIndex = 2; - //middle combo box - if(strcmp(middleCur, "none") == 0) - middleIndex = 0; - else if (strcmp(middleCur, "toggle-maximize") == 0 || strcmp(middleCur, "toggle_maximize") == 0) - middleIndex = 1; - else if (strcmp(middleCur, "lower") == 0) - middleIndex = 2; - //right combo box - if(strcmp(rightCur, "none") == 0) - rightIndex = 0; - else if (strcmp(rightCur, "toggle-maximize") == 0 || strcmp(rightCur, "toggle_maximize") == 0) - rightIndex = 1; - else if (strcmp(rightCur, "lower") == 0) - rightIndex = 2; - - g_signal_handlers_block_by_func(doublecombo, on_combo_changed_cb, DOUBLE); - g_signal_handlers_block_by_func(middlecombo, on_combo_changed_cb, MIDDLE); - g_signal_handlers_block_by_func(rightcombo, on_combo_changed_cb, RIGHT); - gtk_combo_box_set_active(GTK_COMBO_BOX(doublecombo), doubleIndex); - gtk_combo_box_set_active(GTK_COMBO_BOX(middlecombo), middleIndex); - gtk_combo_box_set_active(GTK_COMBO_BOX(rightcombo), rightIndex); - g_signal_handlers_unblock_by_func(doublecombo, on_combo_changed_cb, DOUBLE); - g_signal_handlers_unblock_by_func(middlecombo, on_combo_changed_cb, MIDDLE); - g_signal_handlers_unblock_by_func(rightcombo, on_combo_changed_cb, RIGHT); -} +GtkWidget * computerCheck; +GtkWidget * homeCheck; +GtkWidget * networkCheck; +GtkWidget * trashCheck; +GtkWidget * volumesCheck; + +#define COMPUTER_ICON "computer-icon-visible" +#define HOME_ICON "home-icon-visible" +#define NETWORK_ICON "network-icon-visible" +#define TRASH_ICON "trash-icon-visible" +#define VOLUMES "volumes-visible" -static void populate_combo_data(){ +gboolean check_state_set_cb(GtkWidget * widget, gpointer userdata){ + + const gchar * key = (const gchar *) userdata; + g_settings_set_boolean(settings, key, gtk_toggle_button_get_active(widget)); +} - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(doublecombo), _("none")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(doublecombo), _("toggle-maximize")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(doublecombo), _("lower")); - - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(middlecombo), _("none")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(middlecombo), _("toggle-maximize")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(middlecombo), _("lower")); - - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(rightcombo), _("none")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(rightcombo), _("toggle-maximize")); - gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(rightcombo), _("lower")); +static void check_init(){ + gtk_toggle_button_set_active(computerCheck, g_settings_get_boolean(settings, COMPUTER_ICON)); + gtk_toggle_button_set_active(homeCheck, g_settings_get_boolean(settings, HOME_ICON)); + gtk_toggle_button_set_active(networkCheck, g_settings_get_boolean(settings, NETWORK_ICON)); + gtk_toggle_button_set_active(trashCheck, g_settings_get_boolean(settings, TRASH_ICON)); + gtk_toggle_button_set_active(volumesCheck, g_settings_get_boolean(settings, VOLUMES)); } void windows_init(AppearanceData * data){ - GtkWidget * default_button; builder = data->ui; - gchar * filename = "/usr/share/glib-2.0/schemas/org.mate.marco.gschema.xml"; - if (g_file_test(filename, G_FILE_TEST_EXISTS)) - settings = g_settings_new("org.mate.Marco.general"); - else - settings = g_settings_new("org.gnome.desktop.wm.preferences"); - - doublecombo = GTK_WIDGET(gtk_builder_get_object(builder, "dCombox")); - g_signal_connect(G_OBJECT(doublecombo), "changed", G_CALLBACK(on_combo_changed_cb), DOUBLE); - middlecombo = GTK_WIDGET(gtk_builder_get_object(builder, "mCombox")); - g_signal_connect(G_OBJECT(middlecombo), "changed", G_CALLBACK(on_combo_changed_cb), MIDDLE); + settings = g_settings_new("org.ukui.peony.desktop"); + + computerCheck = GTK_WIDGET(gtk_builder_get_object(builder, "computerCheck")); + g_signal_connect(G_OBJECT(computerCheck), "toggled", G_CALLBACK(check_state_set_cb), COMPUTER_ICON); + + homeCheck = GTK_WIDGET(gtk_builder_get_object(builder, "homeCheck")); + g_signal_connect(G_OBJECT(homeCheck), "toggled", G_CALLBACK(check_state_set_cb), HOME_ICON); + + networkCheck = GTK_WIDGET(gtk_builder_get_object(builder, "networkCheck")); + g_signal_connect(G_OBJECT(networkCheck), "toggled", G_CALLBACK(check_state_set_cb), NETWORK_ICON); + + trashCheck = GTK_WIDGET(gtk_builder_get_object(builder, "trashCheck")); + g_signal_connect(G_OBJECT(trashCheck), "toggled", G_CALLBACK(check_state_set_cb), TRASH_ICON); - rightcombo = GTK_WIDGET(gtk_builder_get_object(builder, "rCombox")); - g_signal_connect(G_OBJECT(rightcombo), "changed", G_CALLBACK(on_combo_changed_cb), RIGHT); + volumesCheck = GTK_WIDGET(gtk_builder_get_object(builder, "volumesCheck")); + g_signal_connect(G_OBJECT(volumesCheck), "toggled", G_CALLBACK(check_state_set_cb), VOLUMES); - populate_combo_data(); - setup_combo(); + check_init(); } void windows_shutdown(AppearanceData *data){
  21. Download patch po/ko.po
  22. Download patch panels/time-data/spy-time.c

    --- 1.1.6-2/panels/time-data/spy-time.c 2018-09-05 07:32:34.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/time-data/spy-time.c 2019-01-21 02:12:39.000000000 +0000 @@ -26,7 +26,8 @@ #include <time.h> #include <gio/gio.h> #include <glib/gi18n.h> -#define TZ_DATA_FILE "/usr/share/zoneinfo/zone_utc" +//#define TZ_DATA_FILE "/usr/share/zoneinfo/zone_utc" +#define TZ_DATA_FILE "/usr/share/zoneinfo/zoneUtc" #define _GMT 1970 #define MAXYAERRANGE 100 #define USE_24_FORMAT "use-24h-format" @@ -57,6 +58,7 @@ struct _TimeDate { GtkWidget * td_combo_month; GtkWidget * td_month_del_button; GtkWidget * ntp_label; + GtkWidget * lang_bt; GtkWidget * hr12_radio; GtkWidget * hr24_radio; @@ -455,6 +457,24 @@ static void year_combo_changed(GtkComboB on_editable_changed(); } +static void boot_extend_app(GtkButton * button, gpointer user_data){ + int status; + gchar * appName = (gchar *) user_data; + gchar * path = g_strdup_printf("/usr/bin/%s", appName); + gchar * cmd = g_strdup_printf("%s &", appName); + if (g_file_test(path, G_FILE_TEST_EXISTS)) + status = system(cmd); + else + g_warning("%s is not exists!", appName); + + if (status < 0) + g_warning("boot %s has occured error\n", appName); + else if (status == 0) + g_warning("boot %s success, but no pid return", appName); + else if (status == 127) + g_warning("boot %s error, error code is 127", appName); +} + void init_calendar_time(gchar *month, gchar *day, gchar *year){ //we need start month from 0 to 11 if(strcmp(month,"Jan")==0){ @@ -685,6 +705,10 @@ void add_time_and_data_app(GtkBuilder * g_signal_connect(timedata.td_month_del_button, "clicked", G_CALLBACK(month_del_button_clicked), NULL); add_year_and_month_data(); + //语言设置 + timedata.lang_bt = GTK_WIDGET(gtk_builder_get_object(builder, "lang_bt")); + g_signal_connect(G_OBJECT(timedata.lang_bt), "clicked", G_CALLBACK(boot_extend_app), "gnome-language-selector"); + //时间制式的相关设置 timedata.hr12_radio = GTK_WIDGET(gtk_builder_get_object(builder, "radiobutton12")); timedata.hr24_radio = GTK_WIDGET(gtk_builder_get_object(builder, "radiobutton24"));
  23. Download patch panels/appearance/appearance-main.c

    --- 1.1.6-2/panels/appearance/appearance-main.c 2018-09-25 03:08:45.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/appearance/appearance-main.c 2019-03-26 09:16:02.000000000 +0000 @@ -17,12 +17,14 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * */ -#include "appearance-main.h" +#include <stdlib.h> #include <stdio.h> +#include "appearance-main.h" #include "appearance-desktop.h" #include "appearance-font.h" #include "appearance-windows.h" -#include <stdlib.h> +#include "appearance-fm.h" +#include "appearance-media.h" #include "appearance-theme.h" AppearanceData *data; @@ -65,6 +67,8 @@ void add_appearance_app(GtkBuilder *buil theme_init(data); font_init(data); windows_init(data); + media_init(data); + filemanager_init(data); g_strfreev(wallpaper_files); }
  24. Download patch panels/mouse/mouse-setting.c
  25. Download patch po/ru.po
  26. Download patch po/fr.po
  27. Download patch panels/appearance/appearance-media.c

    --- 1.1.6-2/panels/appearance/appearance-media.c 1970-01-01 00:00:00.000000000 +0000 +++ 1.1.7.1-0ubuntu1/panels/appearance/appearance-media.c 2019-03-26 09:16:02.000000000 +0000 @@ -0,0 +1,75 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright (C) 2016 Tianjin KYLIN Information Technology Co., Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. + * + */ +#include "appearance-font.h" +#include <glib/gi18n.h> +#include <pango/pangocairo.h> +#include <string.h> +#include <stdlib.h> +#include <math.h> +#include <gdk/gdkx.h> +#include <gdk/gdk.h> + +static GtkBuilder * builder = NULL; + +static GSettings * settings = NULL; + +GtkWidget * automountCheck; +GtkWidget * autoopenCheck; +GtkWidget * runCheck; + +#define AUTO_MOUNT "automount" +#define AUTO_OPEN "automount-open" +#define RUN "autorun-never" + + +gboolean check_set_cb(GtkWidget * widget, gpointer userdata){ + + const gchar * key = (const gchar *) userdata; + + g_settings_set_boolean(settings, key, gtk_toggle_button_get_active(widget)); + +} + +static void check_init(){ + gtk_toggle_button_set_active(automountCheck, g_settings_get_boolean(settings, AUTO_MOUNT)); + gtk_toggle_button_set_active(autoopenCheck, g_settings_get_boolean(settings, AUTO_OPEN)); + gtk_toggle_button_set_active(runCheck, g_settings_get_boolean(settings, RUN)); +} + +void media_init(AppearanceData * data){ + builder = data->ui; + + settings = g_settings_new("org.ukui.media-handling"); + + automountCheck = GTK_WIDGET(gtk_builder_get_object(builder, "automountCheck")); + g_signal_connect(G_OBJECT(automountCheck), "toggled", G_CALLBACK(check_set_cb), AUTO_MOUNT); + + autoopenCheck = GTK_WIDGET(gtk_builder_get_object(builder, "autoopenCheck")); + g_signal_connect(G_OBJECT(autoopenCheck), "toggled", G_CALLBACK(check_set_cb), AUTO_OPEN); + + runCheck = GTK_WIDGET(gtk_builder_get_object(builder, "runCheck")); + g_signal_connect(G_OBJECT(runCheck), "toggled", G_CALLBACK(check_set_cb), RUN); + + check_init(); +} + +void media_shutdown(AppearanceData *data){ + +}

Debian ( Changelog | PTS | Bugs ) Ubuntu ( Changelog | txt | LP | Bugs ) | Diff from Ubuntu

Source: zfs-linux

zfs-linux (0.8.1-1ubuntu9) eoan; urgency=medium [ Colin Ian King ] * Apply upstream Linux 5.3 compat fixes: - debian/patches/3300-Linux-5.3-compat-rw_semaphore-owner.patch - debian/patches/3301-Linux-5.3-compat-retire-rw_tryupgrade.patch [ Thadeu Lima de Souza Cascardo ] * module/Makefile.in: Use obj-m instead of subdir-m - obj-m should be now used for module building -- Colin Ian King <colin.king@canonical.com> Tue, 6 Aug 2019 15:52:42 +0100 zfs-linux (0.8.1-1ubuntu8) eoan; urgency=medium * debian/patches/git_fix_mount_race.patch: - Cherry-pick from upstream to fix a race when using canmount=off (LP: #1837717) * debian/patches/zsys-support.patch: - Don't clone on zsys non zsys bootfs. The zsys daemon will clone it for us. - Hook into zfs-mount-generator as step 1. We will need further optimization in a separate pass. -- Didier Roche <didrocks@ubuntu.com> Wed, 24 Jul 2019 13:28:04 +0200 zfs-linux (0.8.1-1ubuntu7) eoan; urgency=medium * debian/control: Make zfs-dracut arch-restricted again, matching what was uploaded in 0.7.11-3ubuntu3 and mistakenly dropped in a merge. -- Adam Conrad <adconrad@ubuntu.com> Mon, 15 Jul 2019 15:50:40 -0600 zfs-linux (0.8.1-1ubuntu6) eoan; urgency=medium * Make zfs-initramfs architecture-dependent again, so it doesn't exist on our 32-bit archs and try to promote zfs-dkms to main. -- Steve Langasek <steve.langasek@ubuntu.com> Mon, 15 Jul 2019 08:12:29 -0700 zfs-linux (0.8.1-1ubuntu5) eoan; urgency=medium * Fix s390x stack smashing because a lua setjmp/longjmp buf was to small for this architecture. -- Colin Ian King <colin.king@canonical.com> Thu, 5 Jul 2019 15:43:22 +0100 zfs-linux (0.8.1-1ubuntu4) eoan; urgency=medium * Ensure any previous ZFS/SPL modules are removed before loading new ZFS/SPL modules to ensure correct drivers are being tested. Changes in debian/tests/kernel-smoke-test -- Colin Ian King <colin.king@canonical.com> Thu, 4 Jul 2019 12:22:21 +0100 zfs-linux (0.8.1-1ubuntu3) eoan; urgency=medium * Ensure libc6-dev or libc-dev is installed when building zfs-dkms as autotools needs to build test code that depends on this when doing the pre-build config probing. -- Colin Ian King <colin.king@canonical.com> Wed, 3 Jul 2019 18:15:20 +0100 zfs-linux (0.8.1-1ubuntu2) eoan; urgency=medium * Disable dkms tests as Ubuntu has drivers built into the kernel. -- Colin Ian King <colin.king@canonical.com> Wed, 3 Jul 2019 08:21:23 +0100 zfs-linux (0.8.1-1ubuntu1) eoan; urgency=medium * Sync from Debian experimental * Update Ubuntu sauce patches: - 0010-fix-install-path-of-zpool.d-scripts.patch - 2100-zfs-load-module.patch - 2200-add-zfs-0.6.x-ioctl-compat-shim.patch - 3100-remove-libzfs-module-timeout.patch - zsys-support.patch * Add in zfs-doc and zfs-dbg to control file * Limit to 64 bit architectures only -- Colin Ian King <colin.king@canonical.com> Mon, 1 Jul 2019 09:29:11 +0100

Modifications :
  1. Download patch debian/tests/control

    --- 0.8.1-1/debian/tests/control 2019-06-18 08:20:51.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/tests/control 2019-07-03 07:21:23.000000000 +0000 @@ -1,24 +1,8 @@ -Tests: kernel-smoke-test, kernel-ztest +Tests: kernel-smoke-test Restrictions: needs-root, isolation-machine Depends: zfsutils-linux [ amd64 arm64 ppc64el s390x ], zfs-zed [ amd64 arm64 ppc64el s390x ], zfs-initramfs [ amd64 arm64 ppc64el s390x ], zfs-dkms [ amd64 arm64 ppc64el s390x ], - zfs-test [ amd64 arm64 ppc64el s390x ], - -Tests: dkms-zfs-test -Restrictions: needs-root, allow-stderr -Depends: dkms, - linux-headers-amd64 [amd64], - linux-headers-arm64 [arm64], - linux-headers-powerpc64le [ppc64el], - linux-headers-s390x [s390x], - -Tests: binary-debs-modules, binary-debs-modules-udeb -Restrictions: needs-root, allow-stderr, -Depends: @builddeps@, - linux-headers-amd64 [amd64], - linux-headers-arm64 [arm64], - linux-headers-powerpc64le [ppc64el], - linux-headers-s390x [s390x], + zfs-test [ amd64 arm64 ppc64el s390x ]
  2. Download patch debian/patches/0010-fix-install-path-of-zpool.d-scripts.patch

    --- 0.8.1-1/debian/patches/0010-fix-install-path-of-zpool.d-scripts.patch 1970-01-01 00:00:00.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/patches/0010-fix-install-path-of-zpool.d-scripts.patch 2019-07-01 08:26:08.000000000 +0000 @@ -0,0 +1,37 @@ +From: =?utf-8?q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com> +Date: Thu, 12 Oct 2017 08:57:48 +0200 +Subject: fix install path of zpool.d scripts +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +Signed-off-by: Fabian Grnbichler <f.gruenbichler@proxmox.com> +--- + cmd/zpool/Makefile.am | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +Index: zfs-linux-0.8.1/cmd/zpool/Makefile.am +=================================================================== +--- zfs-linux-0.8.1.orig/cmd/zpool/Makefile.am ++++ zfs-linux-0.8.1/cmd/zpool/Makefile.am +@@ -21,11 +21,11 @@ zpool_LDADD = \ + zpool_LDADD += -lm $(LIBBLKID) + + zpoolconfdir = $(sysconfdir)/zfs/zpool.d +-zpoolexecdir = $(zfsexecdir)/zpool.d ++zpoollibdir = /usr/lib/zfs-linux/zpool.d + + EXTRA_DIST = zpool.d/README + +-dist_zpoolexec_SCRIPTS = \ ++dist_zpoollib_SCRIPTS = \ + zpool.d/enc \ + zpool.d/encdev \ + zpool.d/fault_led \ +@@ -118,5 +118,5 @@ install-data-hook: + for f in $(zpoolconfdefaults); do \ + test -f "$(DESTDIR)$(zpoolconfdir)/$${f}" -o \ + -L "$(DESTDIR)$(zpoolconfdir)/$${f}" || \ +- ln -s "$(zpoolexecdir)/$${f}" "$(DESTDIR)$(zpoolconfdir)"; \ ++ ln -s "$(zpoollibdir)/$${f}" "$(DESTDIR)$(zpoolconfdir)"; \ + done
  3. Download patch debian/patches/3300-Linux-5.3-compat-rw_semaphore-owner.patch

    --- 0.8.1-1/debian/patches/3300-Linux-5.3-compat-rw_semaphore-owner.patch 1970-01-01 00:00:00.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/patches/3300-Linux-5.3-compat-rw_semaphore-owner.patch 2019-08-06 14:50:04.000000000 +0000 @@ -0,0 +1,160 @@ +From 041205afee7e151a0ac10c9b5314186cf65417dc Mon Sep 17 00:00:00 2001 +From: Brian Behlendorf <behlendorf1@llnl.gov> +Date: Fri, 12 Jul 2019 13:27:24 -0700 +Subject: [PATCH] Linux 5.3 compat: rw_semaphore owner +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +Commit https://github.com/torvalds/linux/commit/94a9717b updated the +rwsem's owner field to contain additional flags describing the rwsem's +state. Rather then update the wrappers to mask out these bits, the +code no longer relies on the owner stored by the kernel. This does +increase the size of a krwlock_t but it makes the implementation +less sensitive to future kernel changes. + +Reviewed-by: Tony Hutter <hutter2@llnl.gov> +Reviewed-by: Tomohiro Kusumi <kusumi.tomohiro@gmail.com> +Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> +Closes #9029 +--- + include/spl/sys/rwlock.h | 68 +++------------------------------------- + module/spl/spl-rwlock.c | 3 -- + 2 files changed, 5 insertions(+), 66 deletions(-) + +diff --git a/include/spl/sys/rwlock.h b/include/spl/sys/rwlock.h +index 408defac2..5e052b532 100644 +--- a/include/spl/sys/rwlock.h ++++ b/include/spl/sys/rwlock.h +@@ -78,15 +78,9 @@ typedef enum { + RW_READER = 2 + } krw_t; + +-/* +- * If CONFIG_RWSEM_SPIN_ON_OWNER is defined, rw_semaphore will have an owner +- * field, so we don't need our own. +- */ + typedef struct { + struct rw_semaphore rw_rwlock; +-#ifndef CONFIG_RWSEM_SPIN_ON_OWNER + kthread_t *rw_owner; +-#endif + #ifdef CONFIG_LOCKDEP + krw_type_t rw_type; + #endif /* CONFIG_LOCKDEP */ +@@ -97,31 +91,19 @@ typedef struct { + static inline void + spl_rw_set_owner(krwlock_t *rwp) + { +-/* +- * If CONFIG_RWSEM_SPIN_ON_OWNER is defined, down_write, up_write, +- * downgrade_write and __init_rwsem will set/clear owner for us. +- */ +-#ifndef CONFIG_RWSEM_SPIN_ON_OWNER + rwp->rw_owner = current; +-#endif + } + + static inline void + spl_rw_clear_owner(krwlock_t *rwp) + { +-#ifndef CONFIG_RWSEM_SPIN_ON_OWNER + rwp->rw_owner = NULL; +-#endif + } + + static inline kthread_t * + rw_owner(krwlock_t *rwp) + { +-#ifdef CONFIG_RWSEM_SPIN_ON_OWNER +- return (SEM(rwp)->owner); +-#else + return (rwp->rw_owner); +-#endif + } + + #ifdef CONFIG_LOCKDEP +@@ -148,62 +130,22 @@ spl_rw_lockdep_on_maybe(krwlock_t *rwp) \ + #define spl_rw_lockdep_on_maybe(rwp) + #endif /* CONFIG_LOCKDEP */ + +- + static inline int +-RW_WRITE_HELD(krwlock_t *rwp) ++RW_LOCK_HELD(krwlock_t *rwp) + { +- return (rw_owner(rwp) == current); ++ return (spl_rwsem_is_locked(SEM(rwp))); + } + + static inline int +-RW_LOCK_HELD(krwlock_t *rwp) ++RW_WRITE_HELD(krwlock_t *rwp) + { +- return (spl_rwsem_is_locked(SEM(rwp))); ++ return (rw_owner(rwp) == current); + } + + static inline int + RW_READ_HELD(krwlock_t *rwp) + { +- if (!RW_LOCK_HELD(rwp)) +- return (0); +- +- /* +- * rw_semaphore cheat sheet: +- * +- * < 3.16: +- * There's no rw_semaphore.owner, so use rwp.owner instead. +- * If rwp.owner == NULL then it's a reader +- * +- * 3.16 - 4.7: +- * rw_semaphore.owner added (https://lwn.net/Articles/596656/) +- * and CONFIG_RWSEM_SPIN_ON_OWNER introduced. +- * If rw_semaphore.owner == NULL then it's a reader +- * +- * 4.8 - 4.16.16: +- * RWSEM_READER_OWNED added as an internal #define. +- * (https://lore.kernel.org/patchwork/patch/678590/) +- * If rw_semaphore.owner == 1 then it's a reader +- * +- * 4.16.17 - 4.19: +- * RWSEM_OWNER_UNKNOWN introduced as ((struct task_struct *)-1L) +- * (https://do-db2.lkml.org/lkml/2018/5/15/985) +- * If rw_semaphore.owner == 1 then it's a reader. +- * +- * 4.20+: +- * RWSEM_OWNER_UNKNOWN changed to ((struct task_struct *)-2L) +- * (https://lkml.org/lkml/2018/9/6/986) +- * If rw_semaphore.owner & 1 then it's a reader, and also the reader's +- * task_struct may be embedded in rw_semaphore->owner. +- */ +-#if defined(CONFIG_RWSEM_SPIN_ON_OWNER) && defined(RWSEM_OWNER_UNKNOWN) +- if (RWSEM_OWNER_UNKNOWN == (struct task_struct *)-2L) { +- /* 4.20+ kernels with CONFIG_RWSEM_SPIN_ON_OWNER */ +- return ((unsigned long) SEM(rwp)->owner & 1); +- } +-#endif +- +- /* < 4.20 kernel or !CONFIG_RWSEM_SPIN_ON_OWNER */ +- return (rw_owner(rwp) == NULL || (unsigned long) rw_owner(rwp) == 1); ++ return (RW_LOCK_HELD(rwp) && rw_owner(rwp) == NULL); + } + + /* +diff --git a/module/spl/spl-rwlock.c b/module/spl/spl-rwlock.c +index 86727ed19..886e16924 100644 +--- a/module/spl/spl-rwlock.c ++++ b/module/spl/spl-rwlock.c +@@ -119,9 +119,6 @@ rwsem_tryupgrade(struct rw_semaphore *rwsem) + if (__rwsem_tryupgrade(rwsem)) { + rwsem_release(&rwsem->dep_map, 1, _RET_IP_); + rwsem_acquire(&rwsem->dep_map, 0, 1, _RET_IP_); +-#ifdef CONFIG_RWSEM_SPIN_ON_OWNER +- rwsem->owner = current; +-#endif + return (1); + } + return (0); +-- +2.20.1 +
  4. Download patch debian/control

    --- 0.8.1-1/debian/control 2019-06-18 08:20:51.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/control 2019-08-06 14:52:42.000000000 +0000 @@ -1,7 +1,8 @@ Source: zfs-linux Section: contrib/kernel Priority: optional -Maintainer: Debian ZFS on Linux maintainers <pkg-zfsonlinux-devel@alioth-lists.debian.net> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Debian ZFS on Linux maintainers <pkg-zfsonlinux-devel@alioth-lists.debian.net> Uploaders: Aron Xu <aron@debian.org>, Petter Reinholdtsen <pere@debian.org>, Carlos Alberto Lopez Perez <clopez@igalia.com>, @@ -146,7 +147,7 @@ Description: wrapper for libzfs_core C l Package: zfs-dkms Architecture: all Depends: dkms (>> 2.1.1.2-5), lsb-release, ${misc:Depends}, ${perl:Depends}, - file, python3-distutils, + file, python3-distutils, libc6-dev | libc-dev, Recommends: zfs-zed, zfsutils-linux (>= ${binary:Version}), linux-libc-dev (<< 5.2~), linux-libc-dev (>= 2.6.32~), Breaks: spl-dkms (<< 0.8.0~rc1), Replaces: spl-dkms, @@ -160,7 +161,7 @@ Description: OpenZFS filesystem kernel m OpenZFS. Package: zfs-initramfs -Architecture: all +Architecture: amd64 arm64 ppc64el s390x Depends: busybox-initramfs | busybox-static | busybox, initramfs-tools, zfs-modules | zfs-dkms, @@ -177,7 +178,7 @@ Description: OpenZFS root filesystem cap for the initramfs-tools infrastructure. Package: zfs-dracut -Architecture: all +Architecture: amd64 arm64 ppc64el s390x Depends: dracut, zfs-modules | zfs-dkms, zfsutils-linux (>= ${binary:Version}),
  5. Download patch debian/patches/3200-increase-s390x-jmpbuff-size.patch

    --- 0.8.1-1/debian/patches/3200-increase-s390x-jmpbuff-size.patch 1970-01-01 00:00:00.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/patches/3200-increase-s390x-jmpbuff-size.patch 2019-07-05 14:42:03.000000000 +0000 @@ -0,0 +1,19 @@ +Description: Fix s390x stack smashing on lua error handler + The current s390x jmpbuf size is too small, bump it to 64 bytes + which is now plenty to save state when handling the jmpbuf jmps +Author: Colin Ian King <colin.king@ubuntu.com> +Last-Update: 2017-07-05 + +Index: zfs-linux-0.8.1/module/lua/ldo.c +=================================================================== +--- zfs-linux-0.8.1.orig/module/lua/ldo.c ++++ zfs-linux-0.8.1/module/lua/ldo.c +@@ -61,7 +61,7 @@ + #elif defined(__mips__) + #define JMP_BUF_CNT 12 + #elif defined(__s390x__) +-#define JMP_BUF_CNT 9 ++#define JMP_BUF_CNT 64 /* maybe too large */ + #else + #define JMP_BUF_CNT 1 + #endif
  6. Download patch debian/control.in

    --- 0.8.1-1/debian/control.in 2019-06-18 08:20:51.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/control.in 2019-07-15 21:50:28.000000000 +0000 @@ -1,7 +1,8 @@ Source: zfs-linux Section: contrib/kernel Priority: optional -Maintainer: Debian ZFS on Linux maintainers <pkg-zfsonlinux-devel@alioth-lists.debian.net> +Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> +XSBC-Original-Maintainer: Debian ZFS on Linux maintainers <pkg-zfsonlinux-devel@alioth-lists.debian.net> Uploaders: Aron Xu <aron@debian.org>, Petter Reinholdtsen <pere@debian.org>, Carlos Alberto Lopez Perez <clopez@igalia.com>, @@ -146,7 +147,7 @@ Description: wrapper for libzfs_core C l Package: zfs-dkms Architecture: all Depends: dkms (>> 2.1.1.2-5), lsb-release, ${misc:Depends}, ${perl:Depends}, - file, python3-distutils, + file, python3-distutils, libc6-dev | libc-dev, Recommends: zfs-zed, zfsutils-linux (>= ${binary:Version}), @LINUX_COMPAT@ Breaks: spl-dkms (<< 0.8.0~rc1), Replaces: spl-dkms, @@ -160,7 +161,7 @@ Description: OpenZFS filesystem kernel m OpenZFS. Package: zfs-initramfs -Architecture: all +Architecture: amd64 arm64 ppc64el s390x Depends: busybox-initramfs | busybox-static | busybox, initramfs-tools, zfs-modules | zfs-dkms, @@ -177,7 +178,7 @@ Description: OpenZFS root filesystem cap for the initramfs-tools infrastructure. Package: zfs-dracut -Architecture: all +Architecture: amd64 arm64 ppc64el s390x Depends: dracut, zfs-modules | zfs-dkms, zfsutils-linux (>= ${binary:Version}),
  7. Download patch debian/patches/zsys-support.patch
  8. Download patch debian/patches/series

    --- 0.8.1-1/debian/patches/series 2019-06-18 08:20:51.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/patches/series 2019-08-06 14:52:42.000000000 +0000 @@ -1,6 +1,16 @@ 0001-Prevent-manual-builds-in-the-DKMS-source.patch 0002-Check-for-META-and-DCH-consistency-in-autoconf.patch +0010-fix-install-path-of-zpool.d-scripts.patch enable-zed.patch 1004-zed-service-bindir.patch 2000-increase-default-zcmd-allocation-to-256K.patch init-debian-openrc-workaround.patch +2100-zfs-load-module.patch +2200-add-zfs-0.6.x-ioctl-compat-shim.patch +3100-remove-libzfs-module-timeout.patch +zsys-support.patch +3200-increase-s390x-jmpbuff-size.patch +git_fix_mount_race.patch +3300-Linux-5.3-compat-rw_semaphore-owner.patch +3301-Linux-5.3-compat-retire-rw_tryupgrade.patch +3302-Use-obj-m-instead-of-subdir-m.patch
  9. Download patch debian/patches/2200-add-zfs-0.6.x-ioctl-compat-shim.patch
  10. Download patch debian/patches/3302-Use-obj-m-instead-of-subdir-m.patch

    --- 0.8.1-1/debian/patches/3302-Use-obj-m-instead-of-subdir-m.patch 1970-01-01 00:00:00.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/patches/3302-Use-obj-m-instead-of-subdir-m.patch 2019-08-06 14:52:42.000000000 +0000 @@ -0,0 +1,48 @@ +Description: Use obj-m instead of subdir-m. + Do not use subdir-m to visit module Makefile. According to upstream commit + c07d8d47bca1b325102fa2be3a463075f7b051d9 ("kbuild: show hint if subdir-y/m is + used to visit module Makefile"), modules are no longer built when this is used, + and obj-y or obj-m should be used instead. Also, note the need for the trailing + slash. This will make modules.order be generated correctly again, allowing + modpost to process zfs modules again. +Author: Thadeu Lima de Souza Cascardo <cascardo@canonical.com> +Last-Update: 2019-08-12 +Index: zfs-linux-0.8.1/module/Makefile.in +=================================================================== +--- zfs-linux-0.8.1.orig/module/Makefile.in ++++ zfs-linux-0.8.1/module/Makefile.in +@@ -1,11 +1,11 @@ +-subdir-m += avl +-subdir-m += icp +-subdir-m += lua +-subdir-m += nvpair +-subdir-m += spl +-subdir-m += unicode +-subdir-m += zcommon +-subdir-m += zfs ++obj-y += avl/ ++obj-y += icp/ ++obj-y += lua/ ++obj-y += nvpair/ ++obj-y += spl/ ++obj-y += unicode/ ++obj-y += zcommon/ ++obj-y += zfs/ + + INSTALL_MOD_DIR ?= extra + +@@ -60,12 +60,12 @@ modules_install: + modules_uninstall: + @# Uninstall the kernel modules + kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@ +- list='$(subdir-m)'; for subdir in $$list; do \ ++ list='$(obj-y)'; for subdir in $$list; do \ + $(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$subdir; \ + done + + distdir: +- list='$(subdir-m)'; for subdir in $$list; do \ ++ list='$(obj-y)'; for subdir in $$list; do \ + (cd @top_srcdir@/module && find $$subdir -name '*.c' -o -name '*.h' -o -name '*.S' |\ + xargs cp --parents -t $$distdir); \ + done
  11. Download patch debian/zfsutils-linux.install

    --- 0.8.1-1/debian/zfsutils-linux.install 2019-06-18 08:20:51.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/zfsutils-linux.install 2019-07-01 09:56:00.000000000 +0000 @@ -10,6 +10,7 @@ lib/systemd/system/zfs-import.target lib/systemd/system/zfs-mount.service lib/systemd/system/zfs-share.service lib/systemd/system/zfs.target +lib/systemd/system/zfs-load-module.service lib/udev/ sbin/fsck.zfs sbin/mount.zfs
  12. Download patch debian/tests/kernel-smoke-test

    --- 0.8.1-1/debian/tests/kernel-smoke-test 2019-06-18 08:20:51.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/tests/kernel-smoke-test 2019-07-04 11:25:12.000000000 +0000 @@ -26,6 +26,9 @@ # the cumulative testing of each scenario does to the # environment. # +LSMOD=/sbin/lsmod +RMMOD=/sbin/rmmod +MODPROBE=/sbin/modprobe TESTS="kernel-smoke-test-pool-2x2-mirror kernel-smoke-test-pool-4x1-mirror kernel-smoke-test-pool-nested-raidz3 kernel-smoke-test-pool-raidz1 kernel-smoke-test-pool-raidz2 kernel-smoke-test-pool-raidz3 kernel-smoke-test-pool-striped kernel-smoke-test-zil kernel-smoke-test-filesystem kernel-smoke-test-snapshot kernel-smoke-test-clone kernel-smoke-test-send-receive kernel-smoke-test-scrub kernel-smoke-test-encryption" rc=0 # @@ -38,8 +41,63 @@ then exit 0 fi +# +# Remove a module if it is loaded +# +rm_mod() +{ + loaded=$($LSMOD | grep "^$1") + if [ ! -z "$loaded" ]; then + echo "Unloading $1" + $RMMOD $1 + fi +} + +# +# Recursively find module dependencies and remove these modules +# +rm_mod_dep() +( + mod=$1 + n=0 + deps="" + + while true + do + deps=$($LSMOD | grep "^$mod" | awk '{ print $4 }' | tr ',' ' ') + if [ -z "$deps" ]; then + rm_mod $mod + return 0 + else + for dep in $deps + do + rm_mod_dep $dep + if [ $? -ne 0 ]; then + return 1 + fi + done + fi + n=$((n + 1)) + if [ $n -gt 20 ]; then + echo "Cannot remove $mod or a dependency module $deps" + return 1 + fi + done + return 0 +) + +# +# need to stop zed to remove previous zfs +# +systemctl stop zfs-zed.service + +echo "Removing existing zfs modules" +rm_mod_dep zfs +rm_mod_dep spl + # Load zfs kernel module before tests -/sbin/modprobe zfs +echo "Loading new zfs modules" +$MODPROBE zfs for t in ${TESTS} do
  13. Download patch debian/patches/3301-Linux-5.3-compat-retire-rw_tryupgrade.patch
  14. Download patch debian/patches/3100-remove-libzfs-module-timeout.patch

    --- 0.8.1-1/debian/patches/3100-remove-libzfs-module-timeout.patch 1970-01-01 00:00:00.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/patches/3100-remove-libzfs-module-timeout.patch 2019-07-01 08:26:08.000000000 +0000 @@ -0,0 +1,28 @@ +Reduce the timeout to zero seconds when running in a container (LP: #1760173) + +When inside a lxd container with zfs storage, zfs list or zpool status +appears to hang, no output for 10 seconds. Check if we are inside a +container and set the timeout to zero in this specific case. + +--- + +Index: zfs-linux-0.8.1/lib/libzfs/libzfs_util.c +=================================================================== +--- zfs-linux-0.8.1.orig/lib/libzfs/libzfs_util.c ++++ zfs-linux-0.8.1/lib/libzfs/libzfs_util.c +@@ -929,6 +929,15 @@ libzfs_load_module(const char *module) + int load = 0, fd; + hrtime_t start; + ++ /* ++ * If inside a container, set the timeout to zero (LP: #1760173), ++ * however, this can be over-ridden by ZFS_MODULE_TIMEOUT just ++ * in case the user explicitly wants to set the timeout for some ++ * reason just for backward compatibilty ++ */ ++ if (access("/run/systemd/container", R_OK) == 0) ++ timeout = 0; ++ + /* Optionally request module loading */ + if (!libzfs_module_loaded(module)) { + load_str = getenv("ZFS_MODULE_LOADING");
  15. Download patch debian/patches/2100-zfs-load-module.patch

    --- 0.8.1-1/debian/patches/2100-zfs-load-module.patch 1970-01-01 00:00:00.000000000 +0000 +++ 0.8.1-1ubuntu9/debian/patches/2100-zfs-load-module.patch 2019-07-01 09:19:28.000000000 +0000 @@ -0,0 +1,79 @@ +Index: zfs-linux-0.8.1/etc/systemd/system/Makefile.am +=================================================================== +--- zfs-linux-0.8.1.orig/etc/systemd/system/Makefile.am ++++ zfs-linux-0.8.1/etc/systemd/system/Makefile.am +@@ -2,6 +2,7 @@ systemdpreset_DATA = \ + 50-zfs.preset + + systemdunit_DATA = \ ++ zfs-load-module.service \ + zfs-zed.service \ + zfs-import-cache.service \ + zfs-import-scan.service \ +@@ -11,6 +12,7 @@ systemdunit_DATA = \ + zfs.target + + EXTRA_DIST = \ ++ $(top_srcdir)/etc/systemd/system/zfs-load-module.service.in \ + $(top_srcdir)/etc/systemd/system/zfs-zed.service.in \ + $(top_srcdir)/etc/systemd/system/zfs-import-cache.service.in \ + $(top_srcdir)/etc/systemd/system/zfs-import-scan.service.in \ +Index: zfs-linux-0.8.1/etc/systemd/system/zfs-import-cache.service.in +=================================================================== +--- zfs-linux-0.8.1.orig/etc/systemd/system/zfs-import-cache.service.in ++++ zfs-linux-0.8.1/etc/systemd/system/zfs-import-cache.service.in +@@ -3,7 +3,9 @@ Description=Import ZFS pools by cache fi + Documentation=man:zpool(8) + DefaultDependencies=no + Requires=systemd-udev-settle.service ++Requires=zfs-load-module.service + After=systemd-udev-settle.service ++After=zfs-load-module.service + After=cryptsetup.target + After=systemd-remount-fs.service + Before=zfs-import.target +Index: zfs-linux-0.8.1/etc/systemd/system/zfs-import-scan.service.in +=================================================================== +--- zfs-linux-0.8.1.orig/etc/systemd/system/zfs-import-scan.service.in ++++ zfs-linux-0.8.1/etc/systemd/system/zfs-import-scan.service.in +@@ -3,7 +3,9 @@ Description=Import ZFS pools by device s + Documentation=man:zpool(8) + DefaultDependencies=no + Requires=systemd-udev-settle.service ++Requires=zfs-load-module.service + After=systemd-udev-settle.service ++Requires=zfs-load-module.service + After=cryptsetup.target + Before=zfs-import.target + ConditionPathExists=!@sysconfdir@/zfs/zpool.cache +Index: zfs-linux-0.8.1/etc/systemd/system/zfs-load-module.service.in +=================================================================== +--- /dev/null ++++ zfs-linux-0.8.1/etc/systemd/system/zfs-load-module.service.in +@@ -0,0 +1,17 @@ ++[Unit] ++Description=Install ZFS kernel module ++DefaultDependencies=no ++Requires=systemd-udev-settle.service ++After=systemd-udev-settle.service ++After=cryptsetup.target ++Before=dracut-mount.service ++After=systemd-remount-fs.service ++ ++[Service] ++Type=oneshot ++RemainAfterExit=yes ++ExecStart=/sbin/modprobe zfs ++ ++[Install] ++WantedBy=zfs-mount.service ++WantedBy=zfs.target +Index: zfs-linux-0.8.1/etc/systemd/system/50-zfs.preset.in +=================================================================== +--- zfs-linux-0.8.1.orig/etc/systemd/system/50-zfs.preset.in ++++ zfs-linux-0.8.1/etc/systemd/system/50-zfs.preset.in +@@ -6,3 +6,4 @@ enable zfs-mount.service + enable zfs-share.service + enable zfs-zed.service + enable zfs.target ++enable zfs-load-module.service
  16. Download patch debian/patches/git_fix_mount_race.patch
  1. dkms
  2. ibus
  3. ibus-libpinyin
  4. libxml2
  5. network-manager
  6. peony
  7. ukui-control-center
  8. zfs-linux