openSUSE Commits
Threads by month
- ----- 2024 -----
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
June 2017
- 1 participants
- 2052 discussions
Hello community,
here is the log from the commit of package cram for openSUSE:Factory checked in at 2017-06-23 09:18:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cram (Old)
and /work/SRC/openSUSE:Factory/.cram.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cram"
Fri Jun 23 09:18:10 2017 rev:7 rq:505589 version:0.7
Changes:
--------
--- /work/SRC/openSUSE:Factory/cram/cram.changes 2016-09-25 14:45:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cram.new/cram.changes 2017-06-23 09:18:43.163428960 +0200
@@ -1,0 +2,5 @@
+Wed Jun 14 22:19:22 UTC 2017 - mpluskal(a)suse.com
+
+- Convert to singlespec
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cram.spec ++++++
--- /var/tmp/diff_new_pack.A09t1o/_old 2017-06-23 09:18:43.883327236 +0200
+++ /var/tmp/diff_new_pack.A09t1o/_new 2017-06-23 09:18:43.887326671 +0200
@@ -1,7 +1,7 @@
#
# spec file for package cram
#
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -24,18 +24,23 @@
Group: Development/Languages/Python
Url: https://bitheap.org/cram/
Source: https://bitheap.org/cram/cram-%{version}.tar.gz
-BuildRequires: python3-coverage
-BuildRequires: python3-devel
-BuildRequires: python3-nose
-BuildRequires: python3-pep8
-BuildRequires: python3-pyflakes
-BuildRequires: python3-setuptools
-Requires: python3-coverage
-Requires: python3-nose
-Requires: python3-pep8
-Requires: python3-pyflakes
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
+BuildRequires: %{python_module base}
+BuildRequires: %{python_module coverage}
+BuildRequires: %{python_module devel}
+BuildRequires: %{python_module nose}
+BuildRequires: %{python_module pep8}
+BuildRequires: %{python_module pyflakes}
+BuildRequires: %{python_module setuptools}
+BuildRequires: fdupes
+BuildRequires: python-rpm-macros
+Requires: python-coverage
+Requires: python-nose
+Requires: python-pep8
+Requires: python-pyflakes
+Requires(post): update-alternatives
+Requires(postun): update-alternatives
BuildArch: noarch
+%python_subpackages
%description
Cram is a functional testing framework for command line applications
@@ -45,30 +50,53 @@
each command and compares the command output in the test with the
command's actual output.
+%package -n %{name}-common
+Summary: Common files for %{name}
+Group: Development/Languages/Python
+Supplements: python2-%{name}
+Supplements: python3-%{name}
+
+%description -n %{name}-common
+Cram is a functional testing framework for command line applications
+based on Mercurial's `unified test format'.
+
+Cram tests look like snippets of interactive shell sessions. Cram runs
+each command and compares the command output in the test with the
+command's actual output.
+
+This package contains common files for %{name}.
+
%prep
%setup -q
-sed -i 's/python$/python3/' scripts/cram
%build
-python3 setup.py build
+%python_build
%install
-python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}
+%python_install
+%python_clone -a %{buildroot}%{_bindir}/cram
+%fdupes %{buildroot}
install -D -p -m 0644 contrib/cram.vim \
%{buildroot}%{_datadir}/vim/site/syntax/cram.vim
+%post
+%python_install_alternative cram
+
+%postun
+%python_uninstall_alternative cram
+
%check
+make %{?_smp_mflags} PYTHON=python2 test
make %{?_smp_mflags} PYTHON=python3 test
-%files
+%files %{python_files}
%defattr(-,root,root,-)
%doc COPYING.txt NEWS.rst README.rst
-%{_bindir}/cram
-%dir %{python3_sitelib}/%{name}/
-%dir %{python3_sitelib}/%{name}/__pycache__/
-%{python3_sitelib}/%{name}/*.py
-%{python3_sitelib}/%{name}/__pycache__/*.cpython-*.pyc
-%{python3_sitelib}/%{name}-%{version}-py%{py3_ver}.egg-info
+%python_alternative %{_bindir}/cram
+%{python_sitelib}/*
+
+%files -n %{name}-common
+%defattr(-,root,root)
%dir %{_datadir}/vim
%dir %{_datadir}/vim/site
%dir %{_datadir}/vim/site/syntax
1
0
Hello community,
here is the log from the commit of package cinnamon-desktop for openSUSE:Factory checked in at 2017-06-23 09:18:08
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cinnamon-desktop (Old)
and /work/SRC/openSUSE:Factory/.cinnamon-desktop.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cinnamon-desktop"
Fri Jun 23 09:18:08 2017 rev:10 rq:505532 version:3.4.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/cinnamon-desktop/cinnamon-desktop.changes 2017-05-27 13:19:02.137816670 +0200
+++ /work/SRC/openSUSE:Factory/.cinnamon-desktop.new/cinnamon-desktop.changes 2017-06-23 09:18:41.943601324 +0200
@@ -1,0 +2,7 @@
+Wed Jun 21 16:11:48 UTC 2017 - sor.alexei(a)meowr.ru
+
+- Update to version 3.4.2:
+ * gnome-wall-clock: Add functionality to allow setting the update
+ interval.
+
+-------------------------------------------------------------------
Old:
----
cinnamon-desktop-3.4.1.tar.gz
New:
----
cinnamon-desktop-3.4.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cinnamon-desktop.spec ++++++
--- /var/tmp/diff_new_pack.VDn7LY/_old 2017-06-23 09:18:42.691495646 +0200
+++ /var/tmp/diff_new_pack.VDn7LY/_new 2017-06-23 09:18:42.695495080 +0200
@@ -23,7 +23,7 @@
%define typelib typelib-1_0-CinnamonDesktop-3_0
%define typelib_cvc typelib-1_0-Cvc-1_0
Name: cinnamon-desktop
-Version: 3.4.1
+Version: 3.4.2
Release: 0
Summary: Libcinnamon-desktop API
License: GPL-2.0+ and MIT
++++++ cinnamon-desktop-3.4.1.tar.gz -> cinnamon-desktop-3.4.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.1/configure.ac new/cinnamon-desktop-3.4.2/configure.ac
--- old/cinnamon-desktop-3.4.1/configure.ac 2017-05-23 16:31:51.000000000 +0200
+++ new/cinnamon-desktop-3.4.2/configure.ac 2017-06-20 15:25:28.000000000 +0200
@@ -1,5 +1,5 @@
-AC_INIT(cinnamon-desktop, 3.4.1)
+AC_INIT(cinnamon-desktop, 3.4.2)
m4_ifdef([AX_IS_RELEASE], [AX_IS_RELEASE([always])])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.1/debian/changelog new/cinnamon-desktop-3.4.2/debian/changelog
--- old/cinnamon-desktop-3.4.1/debian/changelog 2017-05-23 16:31:51.000000000 +0200
+++ new/cinnamon-desktop-3.4.2/debian/changelog 2017-06-20 15:25:28.000000000 +0200
@@ -1,3 +1,10 @@
+cinnamon-desktop (3.4.2) sonya; urgency=medium
+
+ [ Michael Webster ]
+ * gnome-wall-clock: Add functionality to allow setting the update interval.
+
+ -- Clement Lefebvre <root(a)linuxmint.com> Tue, 20 Jun 2017 15:24:51 +0200
+
cinnamon-desktop (3.4.1) sonya; urgency=medium
[ Clement Lefebvre ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.1/debian/libcinnamon-desktop4.symbols new/cinnamon-desktop-3.4.2/debian/libcinnamon-desktop4.symbols
--- old/cinnamon-desktop-3.4.1/debian/libcinnamon-desktop4.symbols 2017-05-23 16:31:51.000000000 +0200
+++ new/cinnamon-desktop-3.4.2/debian/libcinnamon-desktop4.symbols 1970-01-01 01:00:00.000000000 +0100
@@ -1,158 +0,0 @@
-libcinnamon-desktop.so.4 libcinnamon-desktop4 #MINVER#
- gnome_bg_changes_with_time@Base 2.0.4
- gnome_bg_create_and_set_surface_as_root@Base 2.0.4
- gnome_bg_create_frame_thumbnail@Base 2.0.4
- gnome_bg_create_surface@Base 2.0.4
- gnome_bg_create_thumbnail@Base 2.0.4
- gnome_bg_crossfade_get_type@Base 2.0.4
- gnome_bg_crossfade_is_started@Base 2.0.4
- gnome_bg_crossfade_new@Base 2.0.4
- gnome_bg_crossfade_set_end_surface@Base 2.0.4
- gnome_bg_crossfade_set_start_surface@Base 2.0.4
- gnome_bg_crossfade_start@Base 2.0.4
- gnome_bg_crossfade_stop@Base 2.0.4
- gnome_bg_draw@Base 2.0.4
- gnome_bg_get_color@Base 2.0.4
- gnome_bg_get_filename@Base 2.0.4
- gnome_bg_get_image_size@Base 2.0.4
- gnome_bg_get_placement@Base 2.0.4
- gnome_bg_get_surface_from_root@Base 2.0.4
- gnome_bg_get_type@Base 2.0.4
- gnome_bg_has_multiple_sizes@Base 2.0.4
- gnome_bg_is_dark@Base 2.0.4
- gnome_bg_load_from_preferences@Base 2.0.4
- gnome_bg_new@Base 2.0.4
- gnome_bg_save_to_preferences@Base 2.0.4
- gnome_bg_set_color@Base 2.0.4
- gnome_bg_set_filename@Base 2.0.4
- gnome_bg_set_placement@Base 2.0.4
- gnome_bg_set_surface_as_root@Base 2.0.4
- gnome_bg_set_surface_as_root_with_crossfade@Base 2.0.4
- gnome_desktop_prepend_terminal_to_vector@Base 2.0.4
- gnome_desktop_get_media_key_string@Base 2.4.2
- gnome_desktop_thumbnail_factory_can_thumbnail@Base 2.0.4
- gnome_desktop_thumbnail_factory_create_failed_thumbnail@Base 2.0.4
- gnome_desktop_thumbnail_factory_generate_thumbnail@Base 2.0.4
- gnome_desktop_thumbnail_factory_get_type@Base 2.0.4
- gnome_desktop_thumbnail_factory_has_valid_failed_thumbnail@Base 2.0.4
- gnome_desktop_thumbnail_factory_lookup@Base 2.0.4
- gnome_desktop_thumbnail_factory_new@Base 2.0.4
- gnome_desktop_thumbnail_factory_save_thumbnail@Base 2.0.4
- gnome_desktop_thumbnail_has_uri@Base 2.0.4
- gnome_desktop_thumbnail_is_valid@Base 2.0.4
- gnome_desktop_thumbnail_md5@Base 2.0.4
- gnome_desktop_thumbnail_path_for_uri@Base 2.0.4
- gnome_desktop_thumbnail_scale_down_pixbuf@Base 2.0.4
- gnome_pnp_ids_get_pnp_id@Base 2.0.4
- gnome_pnp_ids_get_type@Base 2.0.4
- gnome_pnp_ids_new@Base 2.0.4
- gnome_rr_config_applicable@Base 2.0.4
- gnome_rr_config_apply_from_filename_with_time@Base 2.0.4
- gnome_rr_config_apply_with_time@Base 2.0.4
- gnome_rr_config_ensure_primary@Base 2.0.4
- gnome_rr_config_equal@Base 2.0.4
- gnome_rr_config_get_backup_filename@Base 2.0.4
- gnome_rr_config_get_clone@Base 2.0.4
- gnome_rr_config_get_intended_filename@Base 2.0.4
- gnome_rr_config_get_outputs@Base 2.0.4
- gnome_rr_config_get_type@Base 2.0.4
- gnome_rr_config_load_current@Base 2.0.4
- gnome_rr_config_load_filename@Base 2.0.4
- gnome_rr_config_match@Base 2.0.4
- gnome_rr_config_new_current@Base 2.0.4
- gnome_rr_config_new_stored@Base 2.0.4
- gnome_rr_config_sanitize@Base 2.0.4
- gnome_rr_config_save@Base 2.0.4
- gnome_rr_config_set_clone@Base 2.0.4
- gnome_rr_crtc_can_drive_output@Base 2.0.4
- gnome_rr_crtc_get_current_mode@Base 2.0.4
- gnome_rr_crtc_get_current_rotation@Base 2.0.4
- gnome_rr_crtc_get_gamma@Base 2.0.4
- gnome_rr_crtc_get_id@Base 2.0.4
- gnome_rr_crtc_get_position@Base 2.0.4
- gnome_rr_crtc_get_rotations@Base 2.0.4
- gnome_rr_crtc_get_type@Base 2.0.4
- gnome_rr_crtc_set_config_with_time@Base 2.0.4
- gnome_rr_crtc_set_gamma@Base 2.0.4
- gnome_rr_crtc_supports_rotation@Base 2.0.4
- gnome_rr_error_quark@Base 2.0.4
- gnome_rr_labeler_get_rgba_for_output@Base 2.0.4
- gnome_rr_labeler_get_type@Base 2.0.4
- gnome_rr_labeler_hide@Base 2.0.4
- gnome_rr_labeler_new@Base 2.0.4
- gnome_rr_labeler_show@Base 2.0.4
- gnome_rr_mode_get_freq@Base 2.0.4
- gnome_rr_mode_get_height@Base 2.0.4
- gnome_rr_mode_get_id@Base 2.0.4
- gnome_rr_mode_get_type@Base 2.0.4
- gnome_rr_mode_get_width@Base 2.0.4
- gnome_rr_output_can_clone@Base 2.0.4
- gnome_rr_output_get_backlight@Base 2.0.4
- gnome_rr_output_get_backlight_max@Base 2.0.4
- gnome_rr_output_get_backlight_min@Base 2.0.4
- gnome_rr_output_get_connector_type@Base 2.0.4
- gnome_rr_output_get_crtc@Base 2.0.4
- gnome_rr_output_get_current_mode@Base 2.0.4
- gnome_rr_output_get_edid_data@Base 2.0.4
- gnome_rr_output_get_height_mm@Base 2.0.4
- gnome_rr_output_get_id@Base 2.0.4
- gnome_rr_output_get_ids_from_edid@Base 2.0.4
- gnome_rr_output_get_is_primary@Base 2.0.4
- gnome_rr_output_get_name@Base 2.0.4
- gnome_rr_output_get_position@Base 2.0.4
- gnome_rr_output_get_preferred_mode@Base 2.0.4
- gnome_rr_output_get_type@Base 2.0.4
- gnome_rr_output_get_width_mm@Base 2.0.4
- gnome_rr_output_info_get_aspect_ratio@Base 2.0.4
- gnome_rr_output_info_get_display_name@Base 2.0.4
- gnome_rr_output_info_get_geometry@Base 2.0.4
- gnome_rr_output_info_get_name@Base 2.0.4
- gnome_rr_output_info_get_preferred_height@Base 2.0.4
- gnome_rr_output_info_get_preferred_width@Base 2.0.4
- gnome_rr_output_info_get_primary@Base 2.0.4
- gnome_rr_output_info_get_product@Base 2.0.4
- gnome_rr_output_info_get_refresh_rate@Base 2.0.4
- gnome_rr_output_info_get_rotation@Base 2.0.4
- gnome_rr_output_info_get_serial@Base 2.0.4
- gnome_rr_output_info_get_type@Base 2.0.4
- gnome_rr_output_info_get_vendor@Base 2.0.4
- gnome_rr_output_info_is_active@Base 2.0.4
- gnome_rr_output_info_is_connected@Base 2.0.4
- gnome_rr_output_info_set_active@Base 2.0.4
- gnome_rr_output_info_set_geometry@Base 2.0.4
- gnome_rr_output_info_set_primary@Base 2.0.4
- gnome_rr_output_info_set_refresh_rate@Base 2.0.4
- gnome_rr_output_info_set_rotation@Base 2.0.4
- gnome_rr_output_is_connected@Base 2.0.4
- gnome_rr_output_is_laptop@Base 2.0.4
- gnome_rr_output_list_modes@Base 2.0.4
- gnome_rr_output_set_backlight@Base 2.0.4
- gnome_rr_output_supports_mode@Base 2.0.4
- gnome_rr_screen_get_crtc_by_id@Base 2.0.4
- gnome_rr_screen_get_dpms_mode@Base 2.0.4
- gnome_rr_screen_get_output_by_id@Base 2.0.4
- gnome_rr_screen_get_output_by_name@Base 2.0.4
- gnome_rr_screen_get_ranges@Base 2.0.4
- gnome_rr_screen_get_timestamps@Base 2.0.4
- gnome_rr_screen_get_type@Base 2.0.4
- gnome_rr_screen_list_clone_modes@Base 2.0.4
- gnome_rr_screen_list_crtcs@Base 2.0.4
- gnome_rr_screen_list_modes@Base 2.0.4
- gnome_rr_screen_list_outputs@Base 2.0.4
- gnome_rr_screen_new@Base 2.0.4
- gnome_rr_screen_refresh@Base 2.0.4
- gnome_rr_screen_set_dpms_mode@Base 2.0.4
- gnome_rr_screen_set_primary_output@Base 2.0.4
- gnome_rr_screen_set_size@Base 2.0.4
- gnome_wall_clock_get_clock@Base 2.0.4
- gnome_wall_clock_get_type@Base 2.0.4
- gnome_xkb_info_description_for_option@Base 2.0.4
- gnome_xkb_info_free_var_defs@Base 2.0.4
- gnome_xkb_info_get_all_layouts@Base 2.0.4
- gnome_xkb_info_get_all_option_groups@Base 2.0.4
- gnome_xkb_info_get_layout_info@Base 2.0.4
- gnome_xkb_info_get_layout_info_for_language@Base 2.0.4
- gnome_xkb_info_get_options_for_group@Base 2.0.4
- gnome_xkb_info_get_type@Base 2.0.4
- gnome_xkb_info_get_var_defs@Base 2.0.4
- gnome_xkb_info_new@Base 2.0.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.1/libcinnamon-desktop/Makefile.am new/cinnamon-desktop-3.4.2/libcinnamon-desktop/Makefile.am
--- old/cinnamon-desktop-3.4.1/libcinnamon-desktop/Makefile.am 2017-05-23 16:31:51.000000000 +0200
+++ new/cinnamon-desktop-3.4.2/libcinnamon-desktop/Makefile.am 2017-06-20 15:25:28.000000000 +0200
@@ -106,7 +106,7 @@
CDesktopEnums_3_0_gir_SCANNERFLAGS = $(WARN_SCANNERFLAGS) --header-only --identifier-prefix=CDesktop
INTROSPECTION_GIRS += CDesktopEnums-3.0.gir
CinnamonDesktop-3.0.gir: libcinnamon-desktop.la
-CinnamonDesktop_3_0_gir_INCLUDES = GObject-2.0 Gtk-3.0
+CinnamonDesktop_3_0_gir_INCLUDES = GObject-2.0 Gtk-3.0 CDesktopEnums-3.0
CinnamonDesktop_3_0_gir_PACKAGES = gdk-pixbuf-2.0 glib-2.0 gobject-2.0 gio-2.0 gtk+-3.0
CinnamonDesktop_3_0_gir_EXPORT_PACKAGES = cinnamon-desktop
CinnamonDesktop_3_0_gir_CFLAGS = $(WARN_CFLAGS) -DGNOME_DESKTOP_USE_UNSTABLE_API -I$(top_srcdir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.1/libcinnamon-desktop/cdesktop-enums.h new/cinnamon-desktop-3.4.2/libcinnamon-desktop/cdesktop-enums.h
--- old/cinnamon-desktop-3.4.1/libcinnamon-desktop/cdesktop-enums.h 2017-05-23 16:31:51.000000000 +0200
+++ new/cinnamon-desktop-3.4.2/libcinnamon-desktop/cdesktop-enums.h 2017-06-20 15:25:28.000000000 +0200
@@ -64,6 +64,13 @@
typedef enum
{
+ C_DESKTOP_CLOCK_INTERVAL_SECOND,
+ C_DESKTOP_CLOCK_INTERVAL_MINUTE,
+ C_DESKTOP_CLOCK_INTERVAL_SETTING
+} CDesktopClockInterval;
+
+typedef enum
+{
C_DESKTOP_MOUSE_DWELL_MODE_WINDOW,
C_DESKTOP_MOUSE_DWELL_MODE_GESTURE
} CDesktopMouseDwellMode;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.1/libcinnamon-desktop/gnome-wall-clock.c new/cinnamon-desktop-3.4.2/libcinnamon-desktop/gnome-wall-clock.c
--- old/cinnamon-desktop-3.4.1/libcinnamon-desktop/gnome-wall-clock.c 2017-05-23 16:31:51.000000000 +0200
+++ new/cinnamon-desktop-3.4.2/libcinnamon-desktop/gnome-wall-clock.c 2017-06-20 15:25:28.000000000 +0200
@@ -28,7 +28,6 @@
#define GNOME_DESKTOP_USE_UNSTABLE_API
#include "gnome-wall-clock.h"
-#include "cdesktop-enums.h"
#include "gnome-datetime-source.h"
struct _GnomeWallClockPrivate {
@@ -40,6 +39,8 @@
GSettings *desktop_settings;
gboolean time_only;
+
+ CDesktopClockInterval update_interval;
};
enum {
@@ -79,6 +80,8 @@
self->priv->desktop_settings = g_settings_new ("org.cinnamon.desktop.interface");
g_signal_connect (self->priv->desktop_settings, "changed", G_CALLBACK (on_schema_change), self);
+ gnome_wall_clock_set_update_interval (self, C_DESKTOP_CLOCK_INTERVAL_SETTING);
+
update_clock (self);
}
@@ -215,16 +218,18 @@
show_seconds = g_settings_get_boolean (self->priv->desktop_settings, "clock-show-seconds");
now = g_date_time_new_now_local ();
- if (show_seconds)
- expiry = g_date_time_add_seconds (now, 1);
- else
- expiry = g_date_time_add_seconds (now, 60 - g_date_time_get_second (now));
-
+
+ if (self->priv->update_interval == C_DESKTOP_CLOCK_INTERVAL_SECOND) {
+ expiry = g_date_time_add_seconds (now, 1);
+ } else {
+ expiry = g_date_time_add_seconds (now, 60 - g_date_time_get_second (now));
+ }
+
if (self->priv->clock_update_id) {
g_source_remove (self->priv->clock_update_id);
self->priv->clock_update_id = 0;
}
-
+
source = _gnome_datetime_source_new (now, expiry, TRUE);
g_source_set_priority (source, G_PRIORITY_HIGH);
g_source_set_callback (source, update_clock, self, NULL);
@@ -297,4 +302,34 @@
gnome_wall_clock_new (void)
{
return g_object_new (GNOME_TYPE_WALL_CLOCK, NULL);
-}
\ No newline at end of file
+}
+
+/**
+ * gnome_wall_clock_set_update_interval:
+ * @clock: a #GnomeWallClock
+ * @interval: the #CDesktopClockInterval
+ *
+ * Sets the wallclock timer to either seconds, minutes, or by the 'use-seconds' setting
+ *
+ */
+
+void
+gnome_wall_clock_set_update_interval(GnomeWallClock *clock,
+ CDesktopClockInterval interval)
+{
+ CDesktopClockInterval new_interval;
+
+ if (interval == C_DESKTOP_CLOCK_INTERVAL_SETTING) {
+ gboolean seconds;
+
+ seconds = g_settings_get_boolean (clock->priv->desktop_settings, "clock-show-seconds");
+ new_interval = seconds ? C_DESKTOP_CLOCK_INTERVAL_SECOND :
+ C_DESKTOP_CLOCK_INTERVAL_MINUTE;
+ } else {
+ new_interval = interval;
+ }
+
+ clock->priv->update_interval = new_interval;
+
+ update_clock (clock);
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-desktop-3.4.1/libcinnamon-desktop/gnome-wall-clock.h new/cinnamon-desktop-3.4.2/libcinnamon-desktop/gnome-wall-clock.h
--- old/cinnamon-desktop-3.4.1/libcinnamon-desktop/gnome-wall-clock.h 2017-05-23 16:31:51.000000000 +0200
+++ new/cinnamon-desktop-3.4.2/libcinnamon-desktop/gnome-wall-clock.h 2017-06-20 15:25:28.000000000 +0200
@@ -31,6 +31,7 @@
#endif
#include <gio/gio.h>
+#include "cdesktop-enums.h"
G_BEGIN_DECLS
@@ -61,7 +62,8 @@
const char * gnome_wall_clock_get_clock (GnomeWallClock *clock);
GnomeWallClock * gnome_wall_clock_new (void);
-
+void gnome_wall_clock_set_update_interval (GnomeWallClock *clock,
+ CDesktopClockInterval interval);
G_END_DECLS
#endif
1
0
Hello community,
here is the log from the commit of package cinnamon-settings-daemon for openSUSE:Factory checked in at 2017-06-23 09:18:06
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cinnamon-settings-daemon (Old)
and /work/SRC/openSUSE:Factory/.cinnamon-settings-daemon.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cinnamon-settings-daemon"
Fri Jun 23 09:18:06 2017 rev:8 rq:505530 version:3.4.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/cinnamon-settings-daemon/cinnamon-settings-daemon.changes 2017-05-27 13:13:16.418693343 +0200
+++ /work/SRC/openSUSE:Factory/.cinnamon-settings-daemon.new/cinnamon-settings-daemon.changes 2017-06-23 09:18:40.599791209 +0200
@@ -1,0 +2,8 @@
+Wed Jun 21 16:11:48 UTC 2017 - sor.alexei(a)meowr.ru
+
+- Update to version 3.4.2:
+ * csd-color-manager.c: Make a device connect warning a debug
+ message instead to reduce .xsession-errors clutter.
+ * daemon-skeleton: Add a few upstream fixes for startup issues.
+
+-------------------------------------------------------------------
Old:
----
cinnamon-settings-daemon-3.4.1.tar.gz
New:
----
cinnamon-settings-daemon-3.4.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cinnamon-settings-daemon.spec ++++++
--- /var/tmp/diff_new_pack.EwsrZ5/_old 2017-06-23 09:18:41.319689485 +0200
+++ /var/tmp/diff_new_pack.EwsrZ5/_new 2017-06-23 09:18:41.319689485 +0200
@@ -17,7 +17,7 @@
Name: cinnamon-settings-daemon
-Version: 3.4.1
+Version: 3.4.2
Release: 0
Summary: The settings Daemon for the Cinnamon Desktop
License: GPL-2.0+ and LGPL-2.1
++++++ cinnamon-settings-daemon-3.4.1.tar.gz -> cinnamon-settings-daemon-3.4.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-settings-daemon-3.4.1/configure.ac new/cinnamon-settings-daemon-3.4.2/configure.ac
--- old/cinnamon-settings-daemon-3.4.1/configure.ac 2017-05-23 16:33:23.000000000 +0200
+++ new/cinnamon-settings-daemon-3.4.2/configure.ac 2017-06-20 15:50:38.000000000 +0200
@@ -1,7 +1,7 @@
AC_PREREQ([2.60])
AC_INIT([cinnamon-settings-daemon],
- [3.4.1],
+ [3.4.2],
[https://github.com/linuxmint/cinnamon-settings-daemon/issues])
AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-settings-daemon-3.4.1/debian/changelog new/cinnamon-settings-daemon-3.4.2/debian/changelog
--- old/cinnamon-settings-daemon-3.4.1/debian/changelog 2017-05-23 16:33:23.000000000 +0200
+++ new/cinnamon-settings-daemon-3.4.2/debian/changelog 2017-06-20 15:50:38.000000000 +0200
@@ -1,3 +1,11 @@
+cinnamon-settings-daemon (3.4.2) sonya; urgency=medium
+
+ [ Michael Webster ]
+ * csd-color-manager.c: Make a device connect warning a debug message instead to reduce .xsession-errors clutter.
+ * daemon-skeleton: Add a few upstream fixes for startup issues.
+
+ -- Clement Lefebvre <root(a)linuxmint.com> Tue, 20 Jun 2017 15:49:57 +0200
+
cinnamon-settings-daemon (3.4.1) sonya; urgency=medium
[ Clement Lefebvre ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-settings-daemon-3.4.1/plugins/color/csd-color-manager.c new/cinnamon-settings-daemon-3.4.2/plugins/color/csd-color-manager.c
--- old/cinnamon-settings-daemon-3.4.1/plugins/color/csd-color-manager.c 2017-05-23 16:33:23.000000000 +0200
+++ new/cinnamon-settings-daemon-3.4.2/plugins/color/csd-color-manager.c 2017-06-20 15:50:38.000000000 +0200
@@ -1196,7 +1196,7 @@
/* get properties */
ret = cd_device_connect_finish (device, res, &error);
if (!ret) {
- g_warning ("failed to connect to device: %s",
+ g_debug ("failed to connect to device: %s",
error->message);
g_error_free (error);
goto out;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-settings-daemon-3.4.1/plugins/common/daemon-skeleton.h new/cinnamon-settings-daemon-3.4.2/plugins/common/daemon-skeleton.h
--- old/cinnamon-settings-daemon-3.4.1/plugins/common/daemon-skeleton.h 2017-05-23 16:33:23.000000000 +0200
+++ new/cinnamon-settings-daemon-3.4.2/plugins/common/daemon-skeleton.h 2017-06-20 15:50:38.000000000 +0200
@@ -83,9 +83,12 @@
variant = g_dbus_proxy_call_finish (G_DBUS_PROXY (source_object), res, &error);
if (!variant) {
+ if (error != NULL) {
g_warning ("Unable to register client: %s", error->message);
g_error_free (error);
- return;
+ }
+
+ return;
}
g_variant_get (variant, "(o)", &object_path);
@@ -99,9 +102,12 @@
NULL,
&error);
if (!client_proxy) {
+ if (error != NULL) {
g_warning ("Unable to get the session client proxy: %s", error->message);
g_error_free (error);
- return;
+ }
+
+ return;
}
g_signal_connect (client_proxy, "g-signal",
@@ -135,9 +141,12 @@
g_object_unref (bus);
if (proxy == NULL) {
+ if (error != NULL) {
g_debug ("Could not connect to the Session manager: %s", error->message);
g_error_free (error);
- return;
+ }
+
+ return;
}
startup_id = g_getenv ("DESKTOP_AUTOSTART_ID");
@@ -160,15 +169,25 @@
bindtextdomain (GETTEXT_PACKAGE, CINNAMON_SETTINGS_LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
textdomain (GETTEXT_PACKAGE);
+
+ /* Work around https://bugzilla.gnome.org/show_bug.cgi?id=674885 */
+ g_type_ensure (G_TYPE_DBUS_CONNECTION);
+ g_type_ensure (G_TYPE_DBUS_PROXY);
+
+ gdk_set_allowed_backends ("x11");
+
notify_init ("cinnamon-settings-daemon");
g_setenv ("GDK_SCALE", "1", TRUE);
error = NULL;
if (! gtk_init_with_args (&argc, &argv, PLUGIN_NAME, entries, NULL, &error)) {
+ if (error != NULL) {
fprintf (stderr, "%s\n", error->message);
g_error_free (error);
- exit (1);
+ }
+
+ exit (1);
}
g_unsetenv ("GDK_SCALE");
@@ -196,9 +215,12 @@
}
if (!started) {
+ if (error != NULL) {
fprintf (stderr, "[cinnamon-settings-daemon-%s] Failed to start: %s\n", PLUGIN_NAME, error->message);
g_error_free (error);
- exit (1);
+ }
+
+ exit (1);
}
gtk_main ();
1
0
Hello community,
here is the log from the commit of package cinnamon for openSUSE:Factory checked in at 2017-06-23 09:18:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cinnamon (Old)
and /work/SRC/openSUSE:Factory/.cinnamon.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cinnamon"
Fri Jun 23 09:18:04 2017 rev:17 rq:505528 version:3.4.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/cinnamon/cinnamon.changes 2017-05-27 13:13:20.706087191 +0200
+++ /work/SRC/openSUSE:Factory/.cinnamon.new/cinnamon.changes 2017-06-23 09:18:38.972021216 +0200
@@ -1,0 +2,70 @@
+Wed Jun 21 16:11:48 UTC 2017 - sor.alexei(a)meowr.ru
+
+- Update to version 3.4.2:
+ * st-texture-cache.c: Do not cache st_texture_cache_load_from_raw.
+ Its only user is the Notification Daemon. These are transient
+ images that were being stored in the cache that would never be
+ evicted during theme changes (this does not just mean times
+ when the user changed the icon theme).
+ * l10n: Translate hardcoded string for settings reset
+ confirmation dialogue.
+ * Silence a few more warnings, new warnings.
+ * expo, overview: Unreference actors that we destroy whenever the
+ respective view closes.
+ * cinnamon-slideshow.py: Only allow a single instance to run.
+ * Sound applet: Avoid spacing problem in vertical panel.
+ * photoframe-desklet: Fix a few issues.
+ * notificationDaemon.js: Silence an occasional warning.
+ * SettingsWidgets.py: Make switch widgets use "center" vertical
+ alignment instead of "fill," to prevent the switch growing in
+ height when the label text gets ellipsised (either through
+ resizing of the window, or localisation).
+ * Progress bar text initialises and resets.
+ * cinnamon-settings-users: Restrict the size of user images, as
+ they are displayed in the right view when a user is selected.
+ If the image at /var/lib/AccountsService/icons/<user> is set to
+ a ridiculously-sized image, it won't break the ui.
+ * cs_user: Don't let large images break the ui - make sure we
+ scale the selected image to an appropriate size.
+ Also, don't crop user-selected images (but keep cropping webcam
+ images) - it's strange to select an image file and have the
+ ends of it cut off.
+ * cinnamon-settings-users.py: Fix picture preview in file
+ selector to maintain a reasonable size.
+ * cs_user.py: Handle image previews better in the face chooser
+ dialogue.
+ * ChooserButtonWidgets.py: Fix a Python 3 error.
+ * window-list: Bring space around preview down and correct a
+ calculation problem.
+ * StScrollView: Queue redraws whenever the adjustments change, to
+ prevent artifacts outside of the view itself.
+ * StScrollView: More effective way of fixing the graphical
+ artefacts generated during scrolling. This also appears to fix
+ some unrelated tearing issues I was seeing in the menu while
+ testing.
+ * main.c: Own onboard's dbus name to prevent it starting when
+ gnome's a11y keyboard settings key is active
+ (org.gnome.desktop.a11y.applications screen-keyboard-enabled).
+ Also own caribou's daemon. Caribou's OSK won't interfere in a
+ Cinnamon session, but its daemon will run needlessly in the
+ background otherwise.
+ * panel: Avoid cjs giving a warning that dummyPanels[i][j] is
+ undefined.
+ * systray applet: Make sure an icon actually got parented to
+ this.manager_container before calling remove_child.
+ This issue can occur during session startup.
+ * spacer applet: Use a unique style class in the theme to prevent
+ the applet from appearing active when hovered.
+ * theme: Add applet-spacer class for spacer applet.
+ * spacer applet: Use track_hover instead of a new style to
+ prevent highlighting.
+ * osdWindow: get the correct child allocation when calculating
+ the width of the level bar. If a padding or margin is added to
+ the level-bar style class, it was causing the parent bin to
+ expand to accomodate the child's width plus its required
+ padding.
+- Rebase cinnamon-wheel-and-sbin-path.patch,
+ cinnamon-no-gksu-requirement.patch,
+ cinnamon-favourite-applications.patch.
+
+-------------------------------------------------------------------
Old:
----
Cinnamon-3.4.1.tar.gz
New:
----
Cinnamon-3.4.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cinnamon.spec ++++++
--- /var/tmp/diff_new_pack.SYVKLE/_old 2017-06-23 09:18:39.731913842 +0200
+++ /var/tmp/diff_new_pack.SYVKLE/_new 2017-06-23 09:18:39.731913842 +0200
@@ -21,7 +21,7 @@
%define _name Cinnamon
%define _version 3.4.0
Name: cinnamon
-Version: 3.4.1
+Version: 3.4.2
Release: 0
Summary: GNU/Linux Desktop featuring a traditional layout
License: GPL-2.0+ and LGPL-2.1
++++++ Cinnamon-3.4.1.tar.gz -> Cinnamon-3.4.2.tar.gz ++++++
++++ 1717 lines of diff (skipped)
++++ retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/configure.ac new/Cinnamon-3.4.2/configure.ac
--- old/Cinnamon-3.4.1/configure.ac 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/configure.ac 2017-06-20 16:17:26.000000000 +0200
@@ -1,5 +1,5 @@
AC_PREREQ(2.63)
-AC_INIT([cinnamon],[3.4.1],[https://github.com/linuxmint/Cinnamon/issues],[cinnamon])
+AC_INIT([cinnamon],[3.4.2],[https://github.com/linuxmint/Cinnamon/issues],[cinnamon])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_SRCDIR([src/cinnamon-global.c])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/data/theme/cinnamon.css new/Cinnamon-3.4.2/data/theme/cinnamon.css
--- old/Cinnamon-3.4.1/data/theme/cinnamon.css 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/data/theme/cinnamon.css 2017-06-20 16:17:26.000000000 +0200
@@ -1514,10 +1514,12 @@
width: 2px;
background: rgba(255,255,255,0.5);
}
+
.applet-separator-line-vertical {
border: 0px solid rgba(255,255,255,0.5);
border-bottom-width: 2px;
}
+
.applet-box {
padding-left: 3px;
padding-right: 3px;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/debian/changelog new/Cinnamon-3.4.2/debian/changelog
--- old/Cinnamon-3.4.1/debian/changelog 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/debian/changelog 2017-06-20 16:17:26.000000000 +0200
@@ -1,3 +1,66 @@
+cinnamon (3.4.2) sonya; urgency=medium
+
+ [ Michael Webster ]
+ * st-texture-cache.c: don't cache st_texture_cache_load_from_raw - its only user is the notificationDaemon. These are transient images that were being stored in the cache that would never be evicted during theme changes (this does not just mean times when the user changed the icon them.)
+
+ [ Clement Lefebvre ]
+ * l10n: Translate hardcoded string for settings reset confirmation dialog
+
+ [ Michael Webster ]
+ * Silence a few more warnings new warnings.
+ * expo, overview: unreference actors that we destroy whenever the respective view closes.
+ * cinnamon-slideshow.py: only allow a single instance to run.
+
+ [ brownsr ]
+ * Sound applet: avoid spacing problem in vertical panel Knock on from commit 3870e42fe58533598ef8998ffb7d6bd3f213cbec
+
+ [ JosephMcc ]
+ * photoframe-desklet: Fix a few issues
+
+ [ Michael Webster ]
+ * notificationDaemon.js: Silence an occasional warning.
+ * SettingsWidgets.py: Make switch widgets use "center" vertical alignment instead of "fill," to prevent the switch growing in height when the label text gets ellipsized (either thru resizing of the window, or localization.)
+
+ [ BinHong Lee ]
+ * Progress bar text initializes and resets
+
+ [ Michael Webster ]
+ * cinnamon-settings-users: Restrict the size of user images, as they are displayed in the right view when a user is selected. If the image at /var/lib/AccountsService/icons/<user> is set to a ridiculously-sized image, it won't break the ui.
+ * cs_user: Don't let large images break the ui - make sure we scale the selected image to an appropriate size. Also, don't crop user-selected images (but keep cropping webcam images) - it's strange to select an image file and have the ends of it cut off.
+ * cinnamon-settings-users.py: Fix picture preview in file selector to maintain a reasonable size.
+ * cs_user.py: Handle image previews better in the face chooser dialog.
+
+ [ Jason Hicks ]
+ * ChooserButtonWidgets.py: Fix Python 3 error
+
+ [ brownsr ]
+ * window-list: bring space around preview down and correct a calculation problem beta testing user asked for the space around the window preview to be brought in a bit that in turn highlighted a bug where the scaling was calculated without taking the icon+title into effect I've brought the spare space down a bit, but I can't bring it down further and have it look right in all themes without major surgery, which would be best done in a development cycle. The space allowance for the icon is not fully adequate as the title font could be set large, and so take up more room than the icon. But I've tried with this height adjustment and this scaling across a wide selection of themes, and it appears to stand up.
+
+ [ Michael Webster ]
+ * cinnamon-settings-users, cs-user, ChooserButtonWidgets: let GdkPixbuf do the work of restricting the size of images while maintaining aspect ratio. Follow-up to last few commits.
+ * StScrollView: queue redraws whenever the adjustments change, to prevent artifacts outside of the view itself.
+ * StScrollView: More effective way of fixing the graphical artifacts generated during scrolling. This also appears to fix some unrelated tearing issues I was seeing in the menu while testing.
+ * main.c: Own onboard's dbus name to prevent it starting when gnome's a11y keyboard settings key is active (org.gnome.desktop.a11y.applications screen-keyboard-enabled.) Also own caribou's daemon. Caribou's OSK won't interfere in a Cinnamon session, but its daemon will run needlessly in the background otherwise.
+
+ [ brownsr ]
+ * panel: avoid cjs giving a warning that dummyPanels[i][j] is undefined
+
+ [ Michael Webster ]
+ * systray applet: make sure an icon actually got parented to this.manager_container before calling remove_child. This issue can occur during session startup.
+ * StScrollView: queue redraws whenever the adjustments change, to prevent artifacts outside of the view itself.
+ * spacer applet: use a unique style class in the theme to prevent the applet from appearing active when hovered.
+ * theme: add applet-spacer class for spacer applet.
+ * spacer applet: use track_hover instead of a new style to prevent highlighting.
+
+ [ leigh123linux ]
+ * Remove unused dep
+
+ [ Michael Webster ]
+ * osdWindow: get the correct child allocation when calculating the width of the level bar. If a padding or margin is added to the level-bar style class, it was causing the parent bin to expand to accomodate the child's width plus its required padding.
+ * Revert "StScrollView: queue redraws whenever the adjustments change, to prevent"
+
+ -- Clement Lefebvre <root(a)linuxmint.com> Tue, 20 Jun 2017 16:16:34 +0200
+
cinnamon (3.4.1) sonya; urgency=medium
[ Clement Lefebvre ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/debian/control new/Cinnamon-3.4.2/debian/control
--- old/Cinnamon-3.4.1/debian/control 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/debian/control 2017-06-20 16:17:26.000000000 +0200
@@ -75,7 +75,6 @@
gir1.2-soup-2.4,
gir1.2-upowerglib-1.0,
gir1.2-gtkclutter-1.0,
- gir1.2-javascriptcoregtk-3.0,
gir1.2-cmenu-3.0 (>= ${cinnamon:Version}),
gir1.2-nmgtk-1.0,
gir1.2-notify-0.7,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/applets/sound(a)cinnamon.org/applet.js new/Cinnamon-3.4.2/files/usr/share/cinnamon/applets/sound(a)cinnamon.org/applet.js
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/applets/sound(a)cinnamon.org/applet.js 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/applets/sound(a)cinnamon.org/applet.js 2017-06-20 16:17:26.000000000 +0200
@@ -970,6 +970,7 @@
this._showFixedElements();
this.set_show_label_in_vertical_panels(false);
+ this.set_applet_label(this._applet_label.get_text());
let appsys = Cinnamon.AppSystem.get_default();
appsys.connect("installed-changed", Lang.bind(this, this._updateLaunchPlayer));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/applets/spacer(a)cinnamon.org/applet.js new/Cinnamon-3.4.2/files/usr/share/cinnamon/applets/spacer(a)cinnamon.org/applet.js
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/applets/spacer(a)cinnamon.org/applet.js 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/applets/spacer(a)cinnamon.org/applet.js 2017-06-20 16:17:26.000000000 +0200
@@ -11,6 +11,7 @@
_init: function(metadata, orientation, panelHeight, instance_id) {
Applet.IconApplet.prototype._init.call(this, orientation, panelHeight, instance_id);
+ this.actor.track_hover = false;
this.bin = new St.Bin();
this.actor.add(this.bin);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/applets/systray(a)cinnamon.org/applet.js new/Cinnamon-3.4.2/files/usr/share/cinnamon/applets/systray(a)cinnamon.org/applet.js
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/applets/systray(a)cinnamon.org/applet.js 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/applets/systray(a)cinnamon.org/applet.js 2017-06-20 16:17:26.000000000 +0200
@@ -312,7 +312,11 @@
this._statusItems.splice(i, 1);
}
}
- this.manager_container.remove_child(icon);
+
+ if (icon.get_parent() == this.manager_container) {
+ this.manager_container.remove_child(icon);
+ }
+
icon.destroy();
},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/applets/window-list(a)cinnamon.org/applet.js new/Cinnamon-3.4.2/files/usr/share/cinnamon/applets/window-list(a)cinnamon.org/applet.js
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/applets/window-list(a)cinnamon.org/applet.js 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/applets/window-list(a)cinnamon.org/applet.js 2017-06-20 16:17:26.000000000 +0200
@@ -86,12 +86,15 @@
Tooltips.TooltipBase.prototype._init.call(this, item.actor);
this._applet = item._applet;
+// FIXME: there is quite a bit of hardcoding in this part of the code, would benefit from setting up separate CSS
+// and getting rid of the hard-coding.
+
this.actor = new St.Bin({style_class: "switcher-list", style: "margin: 0px; padding: 8px;"});
this.actor.show_on_set_parent = false;
this.scaleFactor = St.ThemeContext.get_for_stage(global.stage).scale_factor;
- this.actor.set_size(WINDOW_PREVIEW_WIDTH * 1.3 * this.scaleFactor, WINDOW_PREVIEW_HEIGHT * 1.3 * this.scaleFactor);
+ this.actor.set_size(WINDOW_PREVIEW_WIDTH * 1.2 * this.scaleFactor, WINDOW_PREVIEW_HEIGHT * 1.2 * this.scaleFactor);
Main.uiGroup.add_actor(this.actor);
this.metaWindow = metaWindow;
@@ -111,7 +114,6 @@
this.label = new St.Label();
this.label.style = "padding: 2px;";
hbox.add_actor(this.label);
-
box.add_actor(hbox);
this.thumbnailBin = new St.Bin();
@@ -141,7 +143,9 @@
this.muffinWindow = this.metaWindow.get_compositor_private();
let windowTexture = this.muffinWindow.get_texture();
let [width, height] = windowTexture.get_size();
- let scale = Math.min(1.0, WINDOW_PREVIEW_WIDTH / width, WINDOW_PREVIEW_HEIGHT / height);
+ // the 18 is 16 for the icon size + 2px min padding
+ // this is not foolproof - the font used might be large enough to make the label bigger than the icon
+ let scale = Math.min(1.0, WINDOW_PREVIEW_WIDTH / width, (WINDOW_PREVIEW_HEIGHT-18) / height);
if (this.thumbnail) {
this.thumbnailBin.set_child(null);
@@ -156,7 +160,7 @@
this._setSize = function() {
[width, height] = windowTexture.get_size();
- scale = Math.min(1.0, WINDOW_PREVIEW_WIDTH / width, WINDOW_PREVIEW_HEIGHT / height);
+ scale = Math.min(1.0, WINDOW_PREVIEW_WIDTH / width, (WINDOW_PREVIEW_HEIGHT-18) / height);
this.thumbnail.set_size(width * scale * this.scaleFactor, height * scale * this.scaleFactor);
};
this._sizeChangedId = this.muffinWindow.connect('size-changed',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-settings/bin/ChooserButtonWidgets.py new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-settings/bin/ChooserButtonWidgets.py
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-settings/bin/ChooserButtonWidgets.py 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-settings/bin/ChooserButtonWidgets.py 2017-06-20 16:17:26.000000000 +0200
@@ -76,11 +76,12 @@
self.menu.popup(None, None, self.popup_menu_below_button, self, event.button, event.time)
class PictureChooserButton(BaseChooserButton):
- def __init__ (self, num_cols=4, button_picture_size=None, menu_pictures_size=None, has_button_label=False):
+ def __init__ (self, num_cols=4, button_picture_size=24, menu_pictures_size=24, has_button_label=False, keep_square=False):
super(PictureChooserButton, self).__init__(has_button_label)
self.num_cols = num_cols
self.button_picture_size = button_picture_size
self.menu_pictures_size = menu_pictures_size
+ self.keep_square = keep_square
self.row = 0
self.col = 0
self.progress = 0.0
@@ -88,6 +89,12 @@
context = self.get_style_context()
context.add_class("gtkstyle-fallback")
+ self.button_image.set_valign(Gtk.Align.CENTER)
+ if self.keep_square:
+ self.button_image.set_size_request(button_picture_size, button_picture_size)
+ else:
+ self.button_image.set_size_request(-1, button_picture_size)
+
self.connect_after("draw", self.on_draw)
def on_draw(self, widget, cr, data=None):
@@ -124,12 +131,38 @@
self.queue_draw()
def set_picture_from_file (self, path):
+ pixbuf = None
+ message = ""
+
if os.path.exists(path):
- if self.button_picture_size is None:
+ try:
pixbuf = GdkPixbuf.Pixbuf.new_from_file(path)
- else:
- pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(path, -1, self.button_picture_size, True)
+ except GLib.Error as e:
+ message = "Could not load pixbuf from '%s': %s" % (path, e.message)
+ error = True
+
+ if pixbuf != None:
+ h = pixbuf.get_height()
+ w = pixbuf.get_width()
+
+ if (self.keep_square and (h > self.button_picture_size or w > self.button_picture_size)):
+ try:
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(path, self.button_picture_size, self.button_picture_size)
+ except GLib.Error as e:
+ message = "Could not scale pixbuf from '%s': %s" % (path, e.message)
+ error = True
+ elif h > self.button_picture_size:
+ try:
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(path, -1, self.button_picture_size)
+ except GLib.Error as e:
+ message = "Could not scale pixbuf from '%s': %s" % (path, e.message)
+ error = True
+
+ if pixbuf:
self.button_image.set_from_pixbuf(pixbuf)
+ else:
+ print(message)
+ self.button_image.set_from_file("/usr/share/cinnamon/faces/user-generic.png")
def set_button_label(self, label):
self.button_label.set_markup(label)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py 2017-06-20 16:17:26.000000000 +0200
@@ -503,7 +503,7 @@
def __init__(self, label, dep_key=None, tooltip=""):
super(Switch, self).__init__(dep_key=dep_key)
- self.content_widget = Gtk.Switch()
+ self.content_widget = Gtk.Switch(valign=Gtk.Align.CENTER)
self.label = SettingsLabel(label)
self.pack_start(self.label, False, False, 0)
self.pack_end(self.content_widget, False, False, 0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-settings/bin/Spices.py new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-settings/bin/Spices.py
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-settings/bin/Spices.py 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-settings/bin/Spices.py 2017-06-20 16:17:26.000000000 +0200
@@ -543,6 +543,7 @@
self.progress_window.show()
self.progresslabel.set_text(_("Installing %s...") % (title))
self.progressbar.set_fraction(0)
+ self.progressbar.set_text('0%')
def uninstall(self, uuid, name, schema_filename, onFinished=None):
ui_thread_do(self.ui_uninstalling_xlet, name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-settings/modules/cs_user.py new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-settings/modules/cs_user.py
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-settings/modules/cs_user.py 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-settings/modules/cs_user.py 2017-06-20 16:17:26.000000000 +0200
@@ -38,7 +38,7 @@
settings = page.add_section(_("Account details"))
- self.face_button = PictureChooserButton(num_cols=4, button_picture_size=64, menu_pictures_size=64)
+ self.face_button = PictureChooserButton(num_cols=4, button_picture_size=64, menu_pictures_size=64, keep_square=True)
self.face_button.set_alignment(0.0, 0.5)
self.face_button.set_tooltip_text(_("Click to change your picture"))
@@ -106,15 +106,19 @@
def update_preview_cb (self, dialog, preview):
filename = dialog.get_preview_filename()
- dialog.set_preview_widget_active(False)
- if filename is not None and os.path.isfile(filename):
- try:
- pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(filename, 128, 128)
- if pixbuf is not None:
- preview.set_from_pixbuf (pixbuf)
- dialog.set_preview_widget_active(True)
- except:
- pass
+ if filename is not None:
+ if os.path.isfile(filename):
+ try:
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(filename, 128, 128)
+ if pixbuf is not None:
+ preview.set_from_pixbuf(pixbuf)
+ self.frame.show()
+ return
+ except GLib.Error as e:
+ print("Unable to generate preview for file '%s' - %s\n" % (filename, e.message))
+
+ preview.clear()
+ self.frame.hide()
def _on_face_photo_menuitem_activated(self, menuitem):
@@ -163,30 +167,26 @@
filter.add_mime_type("image/*")
dialog.add_filter(filter)
- preview = Gtk.Image()
- dialog.set_preview_widget(preview);
- dialog.connect("update-preview", self.update_preview_cb, preview)
+ box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
+ self.frame = Gtk.Frame(visible=False, no_show_all=True)
+ preview = Gtk.Image(visible=True)
+
+ box.pack_start(self.frame, False, False, 0)
+ self.frame.add(preview)
+ dialog.set_preview_widget(box)
+ dialog.set_preview_widget_active(True)
dialog.set_use_preview_label(False)
+ box.set_margin_end(12)
+ box.set_margin_top(12)
+ box.set_size_request(128, -1)
+
+ dialog.connect("update-preview", self.update_preview_cb, preview)
+
response = dialog.run()
if response == Gtk.ResponseType.OK:
path = dialog.get_filename()
image = PIL.Image.open(path)
- width, height = image.size
- if width > height:
- new_width = height
- new_height = height
- elif height > width:
- new_width = width
- new_height = width
- else:
- new_width = width
- new_height = height
- left = (width - new_width)/2
- top = (height - new_height)/2
- right = (width + new_width)/2
- bottom = (height + new_height)/2
- image = image.crop((left, top, right, bottom))
image.thumbnail((255, 255), PIL.Image.ANTIALIAS)
face_path = os.path.join(self.accountService.get_home_dir(), ".face")
image.save(face_path, "png")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-settings-users/cinnamon-settings-users.py new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-settings-users/cinnamon-settings-users.py
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-settings-users/cinnamon-settings-users.py 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-settings-users/cinnamon-settings-users.py 2017-06-20 16:17:26.000000000 +0200
@@ -15,7 +15,7 @@
import gi
gi.require_version("Gtk", "3.0")
gi.require_version("AccountsService", "1.0")
-from gi.repository import Gtk, GObject, Gio, GdkPixbuf, AccountsService
+from gi.repository import Gtk, GObject, Gio, GdkPixbuf, AccountsService, GLib
gettext.install("cinnamon", "/usr/share/locale")
@@ -480,6 +480,7 @@
self.face_button = Gtk.Button()
self.face_image = Gtk.Image()
+ self.face_image.set_size_request(96, 96)
self.face_button.set_image(self.face_image)
self.face_image.set_from_file("/usr/share/cinnamon/faces/user-generic.png")
self.face_button.set_alignment(0.0, 0.5)
@@ -619,30 +620,26 @@
filter.add_mime_type("image/*")
dialog.add_filter(filter)
- preview = Gtk.Image()
- dialog.set_preview_widget(preview);
- dialog.connect("update-preview", self.update_preview_cb, preview)
+ box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
+ self.frame = Gtk.Frame(visible=False, no_show_all=True)
+ preview = Gtk.Image(visible=True)
+
+ box.pack_start(self.frame, False, False, 0)
+ self.frame.add(preview)
+ dialog.set_preview_widget(box)
+ dialog.set_preview_widget_active(True)
dialog.set_use_preview_label(False)
+ box.set_margin_end(12)
+ box.set_margin_top(12)
+ box.set_size_request(128, -1)
+
+ dialog.connect("update-preview", self.update_preview_cb, preview)
+
response = dialog.run()
if response == Gtk.ResponseType.OK:
path = dialog.get_filename()
image = PIL.Image.open(path)
- width, height = image.size
- if width > height:
- new_width = height
- new_height = height
- elif height > width:
- new_width = width
- new_height = width
- else:
- new_width = width
- new_height = height
- left = (width - new_width)/2
- top = (height - new_height)/2
- right = (width + new_width)/2
- bottom = (height + new_height)/2
- image = image.crop((left, top, right, bottom))
image.thumbnail((96, 96), Image.ANTIALIAS)
face_path = os.path.join(user.get_home_dir(), ".face")
image.save(face_path, "png")
@@ -654,15 +651,22 @@
dialog.destroy()
def update_preview_cb (self, dialog, preview):
+ # Different widths make the dialog look really crappy as it resizes -
+ # constrain the width and adjust the height to keep perspective.
filename = dialog.get_preview_filename()
- if filename is None:
- return
- dialog.set_preview_widget_active(False)
- if os.path.isfile(filename):
- pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(filename, 128, 128)
- if pixbuf is not None:
- preview.set_from_pixbuf (pixbuf)
- dialog.set_preview_widget_active(True)
+ if filename is not None:
+ if os.path.isfile(filename):
+ try:
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(filename, 128, 128)
+ if pixbuf is not None:
+ preview.set_from_pixbuf(pixbuf)
+ self.frame.show()
+ return
+ except GLib.Error as e:
+ print("Unable to generate preview for file '%s' - %s\n" % (filename, e.message))
+
+ preview.clear()
+ self.frame.hide()
def _on_face_menuitem_activated(self, menuitem, path):
if os.path.exists(path):
@@ -749,9 +753,30 @@
else:
self.account_type_combo.set_active(0)
- if os.path.exists(user.get_icon_file()):
- self.face_image.set_from_file(user.get_icon_file())
+ pixbuf = None
+ path = user.get_icon_file()
+ message = ""
+
+ if os.path.exists(path):
+ try:
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file(path)
+ except GLib.Error as e:
+ message = "Could not load pixbuf from '%s': %s" % (path, e.message)
+ error = True
+
+ if pixbuf != None:
+ if pixbuf.get_height() > 96 or pixbuf.get_width() > 96:
+ try:
+ pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(path, 96, 96)
+ except GLib.Error as e:
+ message = "Could not scale pixbuf from '%s': %s" % (path, e.message)
+ error = True
+
+ if pixbuf:
+ self.face_image.set_from_pixbuf(pixbuf)
else:
+ if message != "":
+ print message
self.face_image.set_from_file("/usr/share/cinnamon/faces/user-generic.png")
groups = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-slideshow/cinnamon-slideshow.py new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-slideshow/cinnamon-slideshow.py
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/cinnamon-slideshow/cinnamon-slideshow.py 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/cinnamon-slideshow/cinnamon-slideshow.py 2017-06-20 16:17:26.000000000 +0200
@@ -309,6 +309,14 @@
if __name__ == "__main__":
DBusGMainLoop(set_as_default=True)
- slideshow = CinnamonSlideshow()
+
+ sessionBus = dbus.SessionBus ()
+ request = sessionBus.request_name(SLIDESHOW_DBUS_NAME, dbus.bus.NAME_FLAG_DO_NOT_QUEUE)
+ if request != dbus.bus.REQUEST_NAME_REPLY_EXISTS:
+ slideshow = CinnamonSlideshow()
+ else:
+ print "cinnamon-slideshow already running."
+ quit()
+
ml = GLib.MainLoop.new(None, True)
ml.run()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/desklets/photoframe(a)cinnamon.org/desklet.js new/Cinnamon-3.4.2/files/usr/share/cinnamon/desklets/photoframe(a)cinnamon.org/desklet.js
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/desklets/photoframe(a)cinnamon.org/desklet.js 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/desklets/photoframe(a)cinnamon.org/desklet.js 2017-06-20 16:17:26.000000000 +0200
@@ -21,7 +21,7 @@
this.metadata = metadata
- this.update_id = null;
+ this.update_id = 0;
try {
this.settings = new Settings.DeskletSettings(this, this.metadata["uuid"], this.instance_id);
@@ -36,20 +36,19 @@
global.logError(e);
}
- this.dir_monitor_id = null;
+ this.dir_monitor_id = 0;
this.dir_monitor = null;
this.dir_file = null;
-
this.setHeader(_("Photo Frame"));
this._setup_dir_monitor();
this.setup_display();
},
on_setting_changed: function() {
- if (this.update_id > 0)
+ if (this.update_id != 0)
Mainloop.source_remove(this.update_id);
- this.update_id = null;
+ this.update_id = 0;
this._setup_dir_monitor();
if (this.currentPicture)
this.currentPicture.destroy();
@@ -58,13 +57,27 @@
},
_setup_dir_monitor: function() {
- if (this.dir_monitor_id && this.dir_monitor) {
+ if ((this.dir_monitor_id != 0) && (this.dir_monitor)) {
this.dir_monitor.disconnect(this.dir_monitor_id)
- this.dir_monitor_id = null
+ this.dir_monitor_id = 0;
+ }
+
+ /* The widget used to choose the folder the images are drawn from
+ was changed to use a URI instead of a path. This check is just
+ to ensure that people upgrading cinnamon versions will get the
+ existing path converted to a proper URI */
+ if (this.dir.indexOf("://") === -1) {
+ let file = Gio.file_new_for_path(this.dir);
+ this.dir = file.get_uri()
}
- this.dir = this.dir.replace('~', GLib.get_home_dir())
- this.dir_file = Gio.file_new_for_path(this.dir);
- this.dir_monitor = this.dir_file.monitor_directory(0, null, null);
+
+ if (this.dir === " ") {
+ let file = Gio.file_new_for_path(GLib.get_user_special_dir(GLib.UserDirectory.DIRECTORY_PICTURES));
+ this.dir = file.get_uri();
+ }
+
+ this.dir_file = Gio.file_new_for_uri(this.dir);
+ this.dir_monitor = this.dir_file.monitor_directory(0, null);
this.dir_monitor_id = this.dir_monitor.connect('changed', Lang.bind(this, this.on_setting_changed));
},
@@ -81,7 +94,7 @@
},
_scan_dir: function(dir) {
- let dir_file = Gio.file_new_for_path(dir);
+ let dir_file = Gio.file_new_for_uri(dir);
let fileEnum = dir_file.enumerate_children('standard::type,standard::name', Gio.FileQueryInfoFlags.NONE, null);
let info;
@@ -232,10 +245,7 @@
_loadImage: function(filePath) {
try {
- let file = Gio.file_new_for_path(filePath);
- let uri = file.get_uri();
-
- let image = St.TextureCache.get_default().load_uri_async(uri, this.width, this.height);
+ let image = St.TextureCache.get_default().load_uri_async(filePath, this.width, this.height);
image._notif_id = image.connect("notify::size", Lang.bind(this, this._size_pic));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/files/usr/share/cinnamon/desklets/photoframe(a)cinnamon.org/settings-schema.json new/Cinnamon-3.4.2/files/usr/share/cinnamon/desklets/photoframe(a)cinnamon.org/settings-schema.json
--- old/Cinnamon-3.4.1/files/usr/share/cinnamon/desklets/photoframe(a)cinnamon.org/settings-schema.json 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/files/usr/share/cinnamon/desklets/photoframe(a)cinnamon.org/settings-schema.json 2017-06-20 16:17:26.000000000 +0200
@@ -1,6 +1,6 @@
{
"directory": {
- "default": "~/Pictures",
+ "default": " ",
"type": "filechooser",
"description" : "Folder",
"allow-none" : false,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/js/ui/applet.js new/Cinnamon-3.4.2/js/ui/applet.js
--- old/Cinnamon-3.4.1/js/ui/applet.js 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/js/ui/applet.js 2017-06-20 16:17:26.000000000 +0200
@@ -35,9 +35,16 @@
* @short_description: Deprecated. Use #PopupMenu.PopupIconMenuItem instead.
*/
function MenuItem(label, icon, callback) {
- this.__proto__ = PopupMenu.PopupIconMenuItem.prototype;
- PopupMenu.PopupIconMenuItem.prototype._init.call(this, label, icon, St.IconType.SYMBOLIC);
- this.connect('activate', callback);
+ this._init(label, icon, callback);
+}
+
+MenuItem.prototype = {
+ __proto__ : PopupMenu.PopupIconMenuItem.prototype,
+
+ _init: function(label, icon, callback) {
+ PopupMenu.PopupIconMenuItem.prototype._init.call(this, label, icon, St.IconType.SYMBOLIC);
+ this.connect('activate', callback);
+ }
}
/**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/js/ui/expo.js new/Cinnamon-3.4.2/js/ui/expo.js
--- old/Cinnamon-3.4.1/js/ui/expo.js 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/js/ui/expo.js 2017-06-20 16:17:26.000000000 +0200
@@ -472,10 +472,14 @@
this._animateVisible();
this._syncInputMode();
+
global.overlay_group.remove_actor(this._group);
this._group.destroy();
+ this._group = null;
+
global.overlay_group.remove_actor(this._background);
this._background.destroy();
+ this._background = null;
Main.layoutManager._chrome.updateRegions();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/js/ui/notificationDaemon.js new/Cinnamon-3.4.2/js/ui/notificationDaemon.js
--- old/Cinnamon-3.4.1/js/ui/notificationDaemon.js 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/js/ui/notificationDaemon.js 2017-06-20 16:17:26.000000000 +0200
@@ -255,10 +255,14 @@
this._startExpire();
},
_expireNotification: function() {
- let ndata = this._expireNotifications[0];
- ndata.notification.destroy(MessageTray.NotificationDestroyedReason.EXPIRED);
- this._expireTimer = 0;
- return false;
+ let ndata = this._expireNotifications[0];
+
+ if (ndata) {
+ ndata.notification.destroy(MessageTray.NotificationDestroyedReason.EXPIRED);
+ }
+
+ this._expireTimer = 0;
+ return false;
},
// Sends a notification to the notification daemon. Returns the id allocated to the notification.
@@ -457,7 +461,7 @@
}
if (actions.length) {
- notification.setUseActionIcons(hints['action-icons'] == true);
+ notification.setUseActionIcons(hints.maybeGet('action-icons') == true);
for (let i = 0; i < actions.length - 1; i += 2) {
if (actions[i] == 'default')
notification.connect('clicked', Lang.bind(this,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/js/ui/osdWindow.js new/Cinnamon-3.4.2/js/ui/osdWindow.js
--- old/Cinnamon-3.4.1/js/ui/osdWindow.js 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/js/ui/osdWindow.js 2017-06-20 16:17:26.000000000 +0200
@@ -44,6 +44,9 @@
this._bar = new St.Widget({ style_class: 'level-bar',
important: true });
+ this.stored_actor_width = 0;
+ this.max_bar_width = 0;
+
this.actor.set_child(this._bar);
},
@@ -54,10 +57,23 @@
set level(value) {
this._level = Math.max(0, Math.min(value, 100));
- let alloc = this.actor.get_allocation_box();
- let newWidth = Math.round((alloc.x2 - alloc.x1) * this._level / 100);
- if (newWidth != this._bar.width)
- this._bar.width = newWidth;
+ /* Track our actor's width - if it changes, we can be certain some setting
+ * or the theme changed. Make sure we update it, as well as figure out our
+ * level bar's allocation.
+ */
+ if (this.stored_actor_width != this.actor.width) {
+ this.stored_actor_width = this.actor.width;
+
+ let box = this.actor.get_theme_node().get_content_box(this.actor.get_allocation_box());
+
+ this.max_bar_width = box.x2 - box.x1;
+ }
+
+ let newWidth = this.max_bar_width * (this._level / 100);
+
+ if (newWidth != this._bar.width) {
+ this._bar.width = newWidth;
+ }
},
setLevelBarHeight: function(sizeMultiplier) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/js/ui/overview.js new/Cinnamon-3.4.2/js/ui/overview.js
--- old/Cinnamon-3.4.1/js/ui/overview.js 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/js/ui/overview.js 2017-06-20 16:17:26.000000000 +0200
@@ -433,8 +433,11 @@
_hideDone: function() {
this._group.remove_actor(this._coverPane);
this._coverPane.destroy();
+ this._coverPane = null;
+
global.overlay_group.remove_actor(this._background);
this._background.destroy();
+ this._background = null;
// Re-enable unredirection
Meta.enable_unredirect_for_screen(global.screen);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/js/ui/panel.js new/Cinnamon-3.4.2/js/ui/panel.js
--- old/Cinnamon-3.4.1/js/ui/panel.js 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/js/ui/panel.js 2017-06-20 16:17:26.000000000 +0200
@@ -1020,17 +1020,17 @@
this.dummyCallback = callback;
this.dummyPanels = [];
- while (this.dummyPanels.push([]) < monitorCount); // Generate a 2D array of length monitorCount; Push returns new length of array
+ while (this.dummyPanels.push([true, true, true, true]) < monitorCount); // 4 possible panels per monitor
for (let i in this.panelsMeta) {
- if (this.panelsMeta[i][0] >= monitorCount) // Monitor does not exist
+ if (this.panelsMeta[i][0] >= monitorCount) // Monitor does not exist
continue;
- this.dummyPanels[this.panelsMeta[i][0]][this.panelsMeta[i][1]] = false; // every location where there is an actual existing panel is noted
+ this.dummyPanels[this.panelsMeta[i][0]][this.panelsMeta[i][1]] = false; // there is an existing panel showing
}
for (let i = 0; i < monitorCount; i++) {
- for (let j = 0; j < 4; j++) { // max of 4 panels per monitor - bottom. top, left, right
- if (this.dummyPanels[i][j] != false) { // no panel there at the moment, so show a dummy
+ for (let j = 0; j < 4; j++) {
+ if (this.dummyPanels[i][j] == true) { // no panel there at the moment, so show a dummy
this.dummyPanels[i][j] = new PanelDummy(i, j, callback);
}
}
@@ -1574,7 +1574,7 @@
});
menu.troubleshootItem.menu.addAction(_("Restore all settings to default"), function(event) {
- let confirm = new ModalDialog.ConfirmDialog("Are you sure you want to restore all settings to default?\n\n",
+ let confirm = new ModalDialog.ConfirmDialog(_("Are you sure you want to restore all settings to default?\n\n"),
function() {
Util.spawnCommandLine("gsettings reset-recursively org.cinnamon");
global.reexec_self();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/src/main.c new/Cinnamon-3.4.2/src/main.c
--- old/Cinnamon-3.4.1/src/main.c 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/src/main.c 2017-06-20 16:17:26.000000000 +0200
@@ -148,6 +148,14 @@
DBUS_NAME_FLAG_REPLACE_EXISTING,
&request_name_result,
"org.gnome.Caribou.Keyboard", FALSE);
+ cinnamon_dbus_acquire_name (bus,
+ DBUS_NAME_FLAG_REPLACE_EXISTING,
+ &request_name_result,
+ "org.gnome.Caribou.Daemon", FALSE);
+ cinnamon_dbus_acquire_name (bus,
+ DBUS_NAME_FLAG_REPLACE_EXISTING,
+ &request_name_result,
+ "org.onboard.Onboard", FALSE);
g_object_unref (bus);
g_object_unref (session);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/src/st/st-scroll-bar.c new/Cinnamon-3.4.2/src/st/st-scroll-bar.c
--- old/Cinnamon-3.4.1/src/st/st-scroll-bar.c 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/src/st/st-scroll-bar.c 2017-06-20 16:17:26.000000000 +0200
@@ -481,6 +481,8 @@
break;
}
+ clutter_actor_queue_redraw (actor);
+
return TRUE;
}
@@ -584,6 +586,8 @@
+ lower;
st_adjustment_set_value (priv->adjustment, position);
+
+ clutter_actor_queue_redraw (CLUTTER_ACTOR (bar));
}
static void
@@ -675,10 +679,17 @@
static void
animation_completed_cb (ClutterAnimation *animation,
- StScrollBarPrivate *priv)
+ StScrollBar *self)
{
- g_object_unref (priv->paging_animation);
- priv->paging_animation = NULL;
+ ClutterTimeline *t;
+
+ t = clutter_animation_get_timeline (animation);
+ g_signal_handlers_disconnect_by_func (t, clutter_actor_queue_redraw, self);
+
+ clutter_actor_queue_redraw (CLUTTER_ACTOR (self));
+
+ g_object_unref (self->priv->paging_animation);
+ self->priv->paging_animation = NULL;
}
static gboolean
@@ -790,7 +801,8 @@
clutter_animation_bind (self->priv->paging_animation, "value", &v);
t = clutter_animation_get_timeline (self->priv->paging_animation);
g_signal_connect (a, "completed", G_CALLBACK (animation_completed_cb),
- self->priv);
+ self);
+ g_signal_connect_swapped (t, "new-frame", G_CALLBACK (clutter_actor_queue_redraw), self);
clutter_timeline_start (t);
return ret;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/src/st/st-scroll-view.c new/Cinnamon-3.4.2/src/st/st-scroll-view.c
--- old/Cinnamon-3.4.1/src/st/st-scroll-view.c 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/src/st/st-scroll-view.c 2017-06-20 16:17:26.000000000 +0200
@@ -257,6 +257,8 @@
"value", &vvalue,
NULL);
st_adjustment_set_value (priv->vadjustment, vvalue + delta);
+
+ clutter_actor_queue_redraw (self);
}
static void
@@ -893,6 +895,8 @@
break;
}
+ clutter_actor_queue_redraw (self);
+
return TRUE;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/Cinnamon-3.4.1/src/st/st-texture-cache.c new/Cinnamon-3.4.2/src/st/st-texture-cache.c
--- old/Cinnamon-3.4.1/src/st/st-texture-cache.c 2017-05-23 16:44:53.000000000 +0200
+++ new/Cinnamon-3.4.2/src/st/st-texture-cache.c 2017-06-20 16:17:26.000000000 +0200
@@ -121,6 +121,8 @@
gpointer key;
gpointer value;
+ g_debug ("%s: Pre-evict count: %d\n", G_STRFUNC, g_hash_table_size (cache->priv->keyed_cache));
+
g_hash_table_iter_init (&iter, cache->priv->keyed_cache);
while (g_hash_table_iter_next (&iter, &key, &value))
{
@@ -133,6 +135,8 @@
if (g_str_has_prefix (cache_key, CACHE_PREFIX_ICON))
g_hash_table_iter_remove (&iter);
}
+
+ g_debug ("%s: Post-evict count: %d\n", G_STRFUNC, g_hash_table_size (cache->priv->keyed_cache));
}
static void
@@ -1858,29 +1862,11 @@
{
ClutterTexture *texture;
CoglTexture *texdata;
- char *key;
- char *checksum;
texture = create_default_texture ();
clutter_actor_set_size (CLUTTER_ACTOR (texture), size, size);
- /* In theory, two images of with different width and height could have the same
- * pixel data and thus hash the same. (Say, a 16x16 and a 8x32 blank image.)
- * We ignore this for now. If anybody hits this problem they should use
- * GChecksum directly to compute a checksum including the width and height.
- */
- checksum = g_compute_checksum_for_data (G_CHECKSUM_SHA1, data, len);
- key = g_strdup_printf (CACHE_PREFIX_RAW_CHECKSUM "checksum=%s", checksum);
- g_free (checksum);
-
- texdata = g_hash_table_lookup (cache->priv->keyed_cache, key);
- if (texdata == NULL)
- {
- texdata = data_to_cogl_texture (data, has_alpha, width, height, rowstride, TRUE);
- g_hash_table_insert (cache->priv->keyed_cache, g_strdup (key), texdata);
- }
-
- g_free (key);
+ texdata = data_to_cogl_texture (data, has_alpha, width, height, rowstride, TRUE);
set_texture_cogl_texture (texture, texdata);
return CLUTTER_ACTOR (texture);
++++++ cinnamon-favourite-applications.patch ++++++
--- /var/tmp/diff_new_pack.SYVKLE/_old 2017-06-23 09:18:40.143855633 +0200
+++ /var/tmp/diff_new_pack.SYVKLE/_new 2017-06-23 09:18:40.143855633 +0200
@@ -1,6 +1,6 @@
--- a/data/org.cinnamon.gschema.xml.in
+++ b/data/org.cinnamon.gschema.xml.in
-@@ -382,7 +382,7 @@
+@@ -388,7 +388,7 @@
</key>
<key name="favorite-apps" type="as">
++++++ cinnamon-no-gksu-requirement.patch ++++++
--- /var/tmp/diff_new_pack.SYVKLE/_old 2017-06-23 09:18:40.167852242 +0200
+++ /var/tmp/diff_new_pack.SYVKLE/_new 2017-06-23 09:18:40.167852242 +0200
@@ -43,7 +43,7 @@
tool = "/usr/share/cinnamon/cinnamon-settings/bin/installSchema.py %s" % (os.path.join(dirname, file.filename))
command = "%s %s" % (launcher, tool)
os.system(command)
-@@ -550,9 +549,8 @@ class Spice_Harvester:
+@@ -551,9 +550,8 @@ class Spice_Harvester:
try:
if not self.themes:
if schema_filename != "":
++++++ cinnamon-wheel-and-sbin-path.patch ++++++
--- /var/tmp/diff_new_pack.SYVKLE/_old 2017-06-23 09:18:40.187849417 +0200
+++ /var/tmp/diff_new_pack.SYVKLE/_new 2017-06-23 09:18:40.191848852 +0200
@@ -47,7 +47,7 @@
self.destroy()
def set_passwords_visibility(self):
-@@ -569,7 +561,7 @@ class Module:
+@@ -570,7 +562,7 @@ class Module:
model, treeiter = self.users_treeview.get_selection().get_selected()
if treeiter != None:
user = model[treeiter][INDEX_USER_OBJECT]
@@ -56,7 +56,7 @@
response = dialog.run()
def _on_groups_button_clicked(self, widget):
-@@ -580,7 +572,7 @@ class Module:
+@@ -581,7 +573,7 @@ class Module:
response = dialog.run()
if response == Gtk.ResponseType.OK:
groups = dialog.get_selected_groups()
@@ -65,7 +65,7 @@
groups.sort()
self.groups_label.set_text(", ".join(groups))
dialog.destroy()
-@@ -814,11 +806,11 @@ class Module:
+@@ -839,11 +831,11 @@ class Module:
pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size("/usr/share/cinnamon/faces/user-generic.png", 48, 48)
description = "<b>%s</b>\n%s" % (fullname, username)
piter = self.users.append(None, [new_user, pixbuf, description])
@@ -80,7 +80,7 @@
self.load_groups()
dialog.destroy()
-@@ -863,7 +855,7 @@ class Module:
+@@ -888,7 +880,7 @@ class Module:
d.set_default_response(Gtk.ResponseType.NO)
r = d.run()
if r == Gtk.ResponseType.YES:
@@ -89,7 +89,7 @@
self.load_groups()
d.destroy()
-@@ -871,7 +863,7 @@ class Module:
+@@ -896,7 +888,7 @@ class Module:
dialog = GroupDialog(_("Group Name"), "")
response = dialog.run()
if response == Gtk.ResponseType.OK:
@@ -98,7 +98,7 @@
self.load_groups()
dialog.destroy()
-@@ -882,7 +874,7 @@ class Module:
+@@ -907,7 +899,7 @@ class Module:
dialog = GroupDialog(_("Group Name"), group)
response = dialog.run()
if response == Gtk.ResponseType.OK:
1
0
Hello community,
here is the log from the commit of package cinnamon-session for openSUSE:Factory checked in at 2017-06-23 09:18:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cinnamon-session (Old)
and /work/SRC/openSUSE:Factory/.cinnamon-session.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cinnamon-session"
Fri Jun 23 09:18:01 2017 rev:9 rq:505526 version:3.4.1
Changes:
--------
--- /work/SRC/openSUSE:Factory/cinnamon-session/cinnamon-session.changes 2017-05-27 13:14:51.757214464 +0200
+++ /work/SRC/openSUSE:Factory/.cinnamon-session.new/cinnamon-session.changes 2017-06-23 09:18:37.616212795 +0200
@@ -1,0 +2,9 @@
+Wed Jun 21 16:11:48 UTC 2017 - sor.alexei(a)meowr.ru
+
+- Update to version 3.4.1:
+ * autostart-blacklist: Add the new gnome settings daemon prefix.
+ * csm-manager.c: Listen to the power schema "lock-on-suspend"
+ setting instead of the normal screensaver setting of
+ "lock when the screensaver starts".
+
+-------------------------------------------------------------------
Old:
----
cinnamon-session-3.4.0.tar.gz
New:
----
cinnamon-session-3.4.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ cinnamon-session.spec ++++++
--- /var/tmp/diff_new_pack.8xJqPp/_old 2017-06-23 09:18:38.184132547 +0200
+++ /var/tmp/diff_new_pack.8xJqPp/_new 2017-06-23 09:18:38.188131982 +0200
@@ -17,7 +17,7 @@
Name: cinnamon-session
-Version: 3.4.0
+Version: 3.4.1
Release: 0
Summary: The session manager for the Cinnamon Desktop
License: GPL-2.0+ and LGPL-2.1+
++++++ cinnamon-session-3.4.0.tar.gz -> cinnamon-session-3.4.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-session-3.4.0/cinnamon-session/csm-manager.c new/cinnamon-session-3.4.1/cinnamon-session/csm-manager.c
--- old/cinnamon-session-3.4.0/cinnamon-session/csm-manager.c 2017-05-04 14:38:10.000000000 +0200
+++ new/cinnamon-session-3.4.1/cinnamon-session/csm-manager.c 2017-06-20 15:27:44.000000000 +0200
@@ -95,8 +95,8 @@
#define KEY_SHOW_FALLBACK_WARNING "show-fallback-warning"
#define KEY_BLACKLIST "autostart-blacklist"
-#define SCREENSAVER_SCHEMA "org.cinnamon.desktop.screensaver"
-#define KEY_SLEEP_LOCK "lock-enabled"
+#define POWER_SETTINGS_SCHEMA "org.cinnamon.settings-daemon.plugins.power"
+#define KEY_LOCK_ON_SUSPEND "lock-on-suspend"
#define LOCKDOWN_SCHEMA "org.cinnamon.desktop.lockdown"
#define KEY_DISABLE_LOG_OUT "disable-log-out"
@@ -152,7 +152,7 @@
GSettings *settings;
GSettings *session_settings;
- GSettings *screensaver_settings;
+ GSettings *power_settings;
GSettings *lockdown_settings;
CsmSystem *system;
@@ -1111,8 +1111,8 @@
static gboolean
sleep_lock_is_enabled (CsmManager *manager)
{
- return g_settings_get_boolean (manager->priv->screensaver_settings,
- KEY_SLEEP_LOCK);
+ return g_settings_get_boolean (manager->priv->power_settings,
+ KEY_LOCK_ON_SUSPEND);
}
static void
@@ -1121,7 +1121,7 @@
GError *error;
gboolean ret;
- /* only lock if gnome-screensaver is set to lock */
+ /* only lock if the user has selected 'lock-on-suspend' in power prefs */
if (!sleep_lock_is_enabled (manager)) {
return;
}
@@ -2700,9 +2700,9 @@
manager->priv->session_settings = NULL;
}
- if (manager->priv->screensaver_settings) {
- g_object_unref (manager->priv->screensaver_settings);
- manager->priv->screensaver_settings = NULL;
+ if (manager->priv->power_settings) {
+ g_object_unref (manager->priv->power_settings);
+ manager->priv->power_settings = NULL;
}
if (manager->priv->lockdown_settings) {
@@ -2901,7 +2901,7 @@
manager->priv->settings = g_settings_new (CSM_MANAGER_SCHEMA);
manager->priv->session_settings = g_settings_new (SESSION_SCHEMA);
- manager->priv->screensaver_settings = g_settings_new (SCREENSAVER_SCHEMA);
+ manager->priv->power_settings = g_settings_new (POWER_SETTINGS_SCHEMA);
manager->priv->lockdown_settings = g_settings_new (LOCKDOWN_SCHEMA);
manager->priv->inhibitors = csm_store_new ();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-session-3.4.0/configure.ac new/cinnamon-session-3.4.1/configure.ac
--- old/cinnamon-session-3.4.0/configure.ac 2017-05-04 14:38:10.000000000 +0200
+++ new/cinnamon-session-3.4.1/configure.ac 2017-06-20 15:27:44.000000000 +0200
@@ -1,5 +1,5 @@
AC_INIT([cinnamon-session],
- [3.4.0],
+ [3.4.1],
[https://github.com/linuxmint/cinnamon-session/issues])
AC_CONFIG_SRCDIR([cinnamon-session])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-session-3.4.0/data/org.cinnamon.SessionManager.gschema.xml.in new/cinnamon-session-3.4.1/data/org.cinnamon.SessionManager.gschema.xml.in
--- old/cinnamon-session-3.4.0/data/org.cinnamon.SessionManager.gschema.xml.in 2017-05-04 14:38:10.000000000 +0200
+++ new/cinnamon-session-3.4.1/data/org.cinnamon.SessionManager.gschema.xml.in 2017-06-20 15:27:44.000000000 +0200
@@ -21,7 +21,7 @@
<description>If enabled, cinnamon-session will display a warning dialog after login if the session was automatically fallen back.</description>
</key>
<key name="autostart-blacklist" type="as">
- <default>['gnome-settings-daemon', 'gnome-fallback-mount-helper', 'gnome-screensaver', 'mate-screensaver', 'mate-keyring-daemon', 'indicator-session', 'gnome-initial-setup-copy-worker', 'gnome-initial-setup-first-login', 'gnome-welcome-tour', 'xscreensaver-autostart', 'nautilus-autostart', 'caja', 'xfce4-power-manager']</default>
+ <default>['gnome-settings-daemon', 'org.gnome.SettingsDaemon', 'gnome-fallback-mount-helper', 'gnome-screensaver', 'mate-screensaver', 'mate-keyring-daemon', 'indicator-session', 'gnome-initial-setup-copy-worker', 'gnome-initial-setup-first-login', 'gnome-welcome-tour', 'xscreensaver-autostart', 'nautilus-autostart', 'caja', 'xfce4-power-manager']</default>
<summary>Applications to block from autostarting or appearing in the app system</summary>
<description>
A list of applications or desktop names (without the .desktop extension) to prevent from
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/cinnamon-session-3.4.0/debian/changelog new/cinnamon-session-3.4.1/debian/changelog
--- old/cinnamon-session-3.4.0/debian/changelog 2017-05-04 14:38:10.000000000 +0200
+++ new/cinnamon-session-3.4.1/debian/changelog 2017-06-20 15:27:44.000000000 +0200
@@ -1,3 +1,13 @@
+cinnamon-session (3.4.1) sonya; urgency=medium
+
+ [ itzexor ]
+ * autostart-blacklist: add new gnome settings daemon prefix
+
+ [ Michael Webster ]
+ * csm-manager.c: Listen to the power schema 'lock-on-suspend' setting instead of the normal screensaver setting of 'lock when the screensaver starts'.
+
+ -- Clement Lefebvre <root(a)linuxmint.com> Tue, 20 Jun 2017 15:27:12 +0200
+
cinnamon-session (3.4.0) sonya; urgency=medium
[ leigh123linux ]
1
0
Hello community,
here is the log from the commit of package ghc-katip for openSUSE:Factory checked in at 2017-06-23 09:17:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ghc-katip (Old)
and /work/SRC/openSUSE:Factory/.ghc-katip.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ghc-katip"
Fri Jun 23 09:17:59 2017 rev:2 rq:505364 version:0.3.1.5
Changes:
--------
--- /work/SRC/openSUSE:Factory/ghc-katip/ghc-katip.changes 2017-04-12 18:07:24.996613873 +0200
+++ /work/SRC/openSUSE:Factory/.ghc-katip.new/ghc-katip.changes 2017-06-23 09:18:36.768332603 +0200
@@ -1,0 +2,5 @@
+Mon Jun 12 09:41:43 UTC 2017 - psimons(a)suse.com
+
+- Update to version 0.3.1.5.
+
+-------------------------------------------------------------------
Old:
----
katip-0.3.1.4.tar.gz
New:
----
katip-0.3.1.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ ghc-katip.spec ++++++
--- /var/tmp/diff_new_pack.BnMWmh/_old 2017-06-23 09:18:37.360248964 +0200
+++ /var/tmp/diff_new_pack.BnMWmh/_new 2017-06-23 09:18:37.364248399 +0200
@@ -19,7 +19,7 @@
%global pkg_name katip
%bcond_with tests
Name: ghc-%{pkg_name}
-Version: 0.3.1.4
+Version: 0.3.1.5
Release: 0
Summary: A structured logging framework
License: BSD-3-Clause
@@ -28,6 +28,7 @@
Source0: https://hackage.haskell.org/package/%{pkg_name}-%{version}/%{pkg_name}-%{ve…
BuildRequires: ghc-Cabal-devel
BuildRequires: ghc-aeson-devel
+BuildRequires: ghc-async-devel
BuildRequires: ghc-auto-update-devel
BuildRequires: ghc-bytestring-devel
BuildRequires: ghc-containers-devel
@@ -49,6 +50,7 @@
BuildRequires: ghc-transformers-base-devel
BuildRequires: ghc-transformers-compat-devel
BuildRequires: ghc-transformers-devel
+BuildRequires: ghc-unagi-chan-devel
BuildRequires: ghc-unix-devel
BuildRequires: ghc-unordered-containers-devel
BuildRoot: %{_tmppath}/%{name}-%{version}-build
++++++ katip-0.3.1.4.tar.gz -> katip-0.3.1.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katip-0.3.1.4/bench/Main.hs new/katip-0.3.1.5/bench/Main.hs
--- old/katip-0.3.1.4/bench/Main.hs 2017-01-12 03:59:43.000000000 +0100
+++ new/katip-0.3.1.5/bench/Main.hs 2017-06-06 00:59:41.000000000 +0200
@@ -31,14 +31,14 @@
-------------------------------------------------------------------------------
handleScribeBench :: Benchmark
handleScribeBench = bgroup "Katip.Scribes.Handle" [
- env setupHandleEnv $ \ ~(Scribe push, tid) ->
+ env setupHandleEnv $ \ ~((Scribe push, _), tid) ->
bench "Bytestring Builder" $
- whnfIO $ push $ exItem tid
+ whnfIO $ (push (exItem tid))
]
-------------------------------------------------------------------------------
-setupHandleEnv :: IO (Scribe, ThreadIdText)
+setupHandleEnv :: IO ((Scribe, Finaliser), ThreadIdText)
setupHandleEnv = do
scribe <- setup
tid <- myThreadId
@@ -83,15 +83,20 @@
-------------------------------------------------------------------------------
-setup :: IO Scribe
+setup :: IO (Scribe, Finaliser)
setup = do
h <- openFile "/dev/null" WriteMode
- mkHandleScribe ColorIfTerminal h DebugS V0
+ (s, f) <- mkHandleScribe ColorIfTerminal h DebugS V0
+ return (s, F f)
-------------------------------------------------------------------------------
deriving instance NFData ThreadIdText
+newtype Finaliser = F (IO ())
instance NFData Scribe where
rnf (Scribe _) = ()
+
+instance NFData Finaliser where
+ rnf (F _) = ()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katip-0.3.1.4/changelog.md new/katip-0.3.1.5/changelog.md
--- old/katip-0.3.1.4/changelog.md 2017-01-12 03:59:43.000000000 +0100
+++ new/katip-0.3.1.5/changelog.md 2017-06-06 00:59:41.000000000 +0200
@@ -1,3 +1,7 @@
+0.3.1.5
+=======
+* Add Semigroup instance for LogStr.
+
0.3.1.4
=======
* Loosen deps on aeson to allow 1.1.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katip-0.3.1.4/examples/example.hs new/katip-0.3.1.5/examples/example.hs
--- old/katip-0.3.1.4/examples/example.hs 2017-01-12 03:59:43.000000000 +0100
+++ new/katip-0.3.1.5/examples/example.hs 2017-06-06 00:59:41.000000000 +0200
@@ -34,7 +34,7 @@
-- messages entirely. Note that katip provides facilities like
-- 'unregisterScribe' and 'registerScribe' to make it possible to
-- hot-swap scribes at runtime if you need to.
- handleScribe <- mkHandleScribe ColorIfTerminal stdout InfoS V2
+ (handleScribe, finaliser) <- mkHandleScribe ColorIfTerminal stdout InfoS V2
let le' = registerScribe "stdout" handleScribe le
let s = MyState M.mempty mempty le'
runStack s $ do
@@ -52,7 +52,7 @@
$(logTM) InfoS "Namespace and context are back to normal"
noLogging $
$(logTM) DebugS "You'll never see this log message!"
-
+ finaliser
-------------------------------------------------------------------------------
newtype ConfrabLogCTX = ConfrabLogCTX Int
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katip-0.3.1.4/examples/example_lens.hs new/katip-0.3.1.5/examples/example_lens.hs
--- old/katip-0.3.1.4/examples/example_lens.hs 2017-01-12 03:59:43.000000000 +0100
+++ new/katip-0.3.1.5/examples/example_lens.hs 2017-06-06 00:59:41.000000000 +0200
@@ -50,7 +50,7 @@
-- messages entirely. Note that katip provides facilities like
-- 'unregisterScribe' and 'registerScribe' to make it possible to
-- hot-swap scribes at runtime if you need to.
- handleScribe <- mkHandleScribe ColorIfTerminal stdout InfoS V2
+ (handleScribe, finaliser) <- mkHandleScribe ColorIfTerminal stdout InfoS V2
let le' = registerScribe "stdout" handleScribe le
let s = MyState M.mempty mempty le'
runStack s $ do
@@ -68,6 +68,7 @@
$(logTM) InfoS "Namespace and context are back to normal"
noLogging $
$(logTM) DebugS "You'll never see this log message!"
+ finaliser
-------------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katip-0.3.1.4/katip.cabal new/katip-0.3.1.5/katip.cabal
--- old/katip-0.3.1.4/katip.cabal 2017-01-12 03:59:43.000000000 +0100
+++ new/katip-0.3.1.5/katip.cabal 2017-06-06 00:59:41.000000000 +0200
@@ -1,5 +1,5 @@
name: katip
-version: 0.3.1.4
+version: 0.3.1.5
synopsis: A structured logging framework.
description:
Katip is a structured logging framework. See README.md for more details.
@@ -55,6 +55,7 @@
build-depends: base >=4.5 && <5
, aeson >=0.6 && <1.2
+ , async < 3.0.0.0
, auto-update >= 0.1 && < 0.2
, bytestring >= 0.9 && < 0.11
, containers >=0.4 && <0.6
@@ -76,6 +77,7 @@
, microlens >= 0.2.0.0 && < 0.5
, microlens-th >= 0.1.0.0 && < 0.5
, semigroups
+ , unagi-chan < 0.5.0.0
hs-source-dirs: src
default-language: Haskell2010
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katip-0.3.1.4/src/Katip/Core.hs new/katip-0.3.1.5/src/Katip/Core.hs
--- old/katip-0.3.1.4/src/Katip/Core.hs 2017-01-12 03:59:43.000000000 +0100
+++ new/katip-0.3.1.5/src/Katip/Core.hs 2017-06-06 00:59:41.000000000 +0200
@@ -493,7 +493,7 @@
-- Handle scribe does.
--
-- 2. Return a finalizing function that tells the scribe to shut
--- down. @katip-elasticsearch@'s @mkEsScribe@ returns a @IO (Scribe,
+-- down. @katip-elasticsearch@'s @mkEsScribe@ returns an @IO (Scribe,
-- IO ())@. The finalizer will flush any queued log messages and shut
-- down gracefully before returning. This can be hooked into your
-- application's shutdown routine to ensure you never miss any log
@@ -826,7 +826,11 @@
-- `logT` for maximum compatibility.
--
-- @logLoc obj mempty InfoS "Hello world"@
+#if MIN_VERSION_base(4, 8, 0)
+logLoc :: (Applicative m, LogItem a, Katip m, ?loc :: CallStack)
+#else
logLoc :: (Applicative m, LogItem a, Katip m)
+#endif
=> a
-> Namespace
-> Severity
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katip-0.3.1.4/src/Katip/Monadic.hs new/katip-0.3.1.5/src/Katip/Monadic.hs
--- old/katip-0.3.1.4/src/Katip/Monadic.hs 2017-01-12 03:59:43.000000000 +0100
+++ new/katip-0.3.1.5/src/Katip/Monadic.hs 2017-06-06 00:59:41.000000000 +0200
@@ -57,11 +57,11 @@
import qualified Control.Monad.Trans.RWS.Strict as Strict (RWST)
import qualified Control.Monad.Trans.State.Strict as Strict (StateT)
import qualified Control.Monad.Trans.Writer.Strict as Strict (WriterT)
-import Control.Monad.Writer
+import Control.Monad.Writer hiding ((<>))
import Data.Aeson
import qualified Data.Foldable as FT
import qualified Data.HashMap.Strict as HM
-import Data.Monoid as M
+import Data.Semigroup as Semi
import Data.Sequence as Seq
import Data.Text (Text)
import Language.Haskell.TH
@@ -92,7 +92,7 @@
-- Additional note: you should not mappend LogContexts in any sort of
-- infinite loop, as it retains all data, so that would be a memory
-- leak.
-newtype LogContexts = LogContexts (Seq AnyLogContext) deriving (Monoid)
+newtype LogContexts = LogContexts (Seq AnyLogContext) deriving (Monoid, Semigroup)
instance ToJSON LogContexts where
toJSON (LogContexts cs) =
@@ -230,7 +230,7 @@
logExceptionM action sev = action `catchAll` \e -> f e >> throwM e
where
f e = logFM sev (msg e)
- msg e = ls ("An exception has occured: " :: Text) M.<> showLS e
+ msg e = ls ("An exception has occured: " :: Text) Semi.<> showLS e
-------------------------------------------------------------------------------
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katip-0.3.1.4/src/Katip/Scribes/Handle.hs new/katip-0.3.1.5/src/Katip/Scribes/Handle.hs
--- old/katip-0.3.1.4/src/Katip/Scribes/Handle.hs 2017-01-12 03:59:43.000000000 +0100
+++ new/katip-0.3.1.5/src/Katip/Scribes/Handle.hs 2017-06-06 00:59:41.000000000 +0200
@@ -3,21 +3,22 @@
module Katip.Scribes.Handle where
-------------------------------------------------------------------------------
-import Control.Applicative as A
-import Control.Concurrent
-import Control.Exception (bracket_)
+import Control.Applicative as A
import Control.Monad
+import Control.Exception (onException)
import Data.Aeson
-import qualified Data.HashMap.Strict as HM
+import qualified Data.HashMap.Strict as HM
import Data.Monoid
-import Data.Text (Text)
+import Data.Text (Text)
import Data.Text.Lazy.Builder
-import Data.Text.Lazy.IO as T
+import Data.Text.Lazy.IO as T
import System.IO
-import System.IO.Unsafe (unsafePerformIO)
+import System.IO.Unsafe (unsafePerformIO)
+import qualified Control.Concurrent.Chan.Unagi.Bounded as U
+import Control.Concurrent.Async
-------------------------------------------------------------------------------
import Katip.Core
-import Katip.Format.Time (formatAsLogTime)
+import Katip.Format.Time (formatAsLogTime)
-------------------------------------------------------------------------------
@@ -48,6 +49,10 @@
| ColorIfTerminal
-- ^ Color if output is a terminal
+-------------------------------------------------------------------------------
+data WorkerCmd =
+ NewItem Builder
+ | PoisonPill
-------------------------------------------------------------------------------
-- | Logs to a file handle such as stdout, stderr, or a file. Contexts
@@ -57,17 +62,35 @@
-- > [2016-05-11 21:01:15][MyApp][Info][myhost.example.com][1724][ThreadId 1154][main:Helpers.Logging Helpers/Logging.hs:32:7] Started
-- > [2016-05-11 21:01:15][MyApp.confrabulation][Debug][myhost.example.com][1724][ThreadId 1154][confrab_factor:42.0][main:Helpers.Logging Helpers/Logging.hs:41:9] Confrabulating widgets, with extra namespace and context
-- > [2016-05-11 21:01:15][MyApp][Info][myhost.example.com][1724][ThreadId 1154][main:Helpers.Logging Helpers/Logging.hs:43:7] Namespace and context are back to normal
-mkHandleScribe :: ColorStrategy -> Handle -> Severity -> Verbosity -> IO Scribe
+--
+-- Returns the newly-created `Scribe` together with a finaliser the user needs to run to perform resource cleanup.
+mkHandleScribe :: ColorStrategy -> Handle -> Severity -> Verbosity -> IO (Scribe, IO ())
mkHandleScribe cs h sev verb = do
+ (inChan, outChan) <- U.newChan 4096
+ worker <- async $ workerLoop outChan
+ flip onException (stopWorker worker inChan) $ do
hSetBuffering h LineBuffering
colorize <- case cs of
ColorIfTerminal -> hIsTerminalDevice h
ColorLog b -> return b
- lock <- newMVar ()
- return $ Scribe $ \ i@Item{..} -> do
- when (permitItem sev i) $ bracket_ (takeMVar lock) (putMVar lock ()) $
- T.hPutStrLn h $ toLazyText $ formatItem colorize verb i
+ let scribe = Scribe $ \i ->
+ when (permitItem sev i) $ void (U.tryWriteChan inChan (NewItem (formatItem colorize verb i)))
+ return (scribe, stopWorker worker inChan)
+ where
+ stopWorker :: Async () -> U.InChan WorkerCmd -> IO ()
+ stopWorker worker inChan = do
+ U.writeChan inChan PoisonPill
+ void $ waitCatch worker
+
+ workerLoop :: U.OutChan WorkerCmd -> IO ()
+ workerLoop outChan = do
+ newCmd <- U.readChan outChan
+ case newCmd of
+ NewItem b -> do
+ T.hPutStrLn h $ toLazyText b
+ workerLoop outChan
+ PoisonPill -> return ()
-------------------------------------------------------------------------------
formatItem :: LogItem a => Bool -> Verbosity -> Item a -> Builder
@@ -100,10 +123,11 @@
-------------------------------------------------------------------------------
-- | An implicit environment to enable logging directly ouf of the IO monad.
+-- Be careful as this LogEnv won't perform any resource cleanup for you.
_ioLogEnv :: LogEnv
_ioLogEnv = unsafePerformIO $ do
le <- initLogEnv "io" "io"
- lh <- mkHandleScribe ColorIfTerminal stdout DebugS V3
+ (lh, _) <- mkHandleScribe ColorIfTerminal stdout DebugS V3
return $ registerScribe "stdout" lh le
{-# NOINLINE _ioLogEnv #-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/katip-0.3.1.4/test/Katip/Tests/Scribes/Handle.hs new/katip-0.3.1.5/test/Katip/Tests/Scribes/Handle.hs
--- old/katip-0.3.1.4/test/Katip/Tests/Scribes/Handle.hs 2017-01-12 03:59:43.000000000 +0100
+++ new/katip-0.3.1.5/test/Katip/Tests/Scribes/Handle.hs 2017-06-06 00:59:41.000000000 +0200
@@ -33,8 +33,9 @@
tests = testGroup "Katip.Scribes.Handle"
[
withResource setup teardown $ \setupScribe -> testCase "logs the correct data" $ do
- (path, h, le) <- setupScribe
+ (path, h, fin, le) <- setupScribe
runKatipT le $ logItem dummyLogItem "test" Nothing InfoS "test message"
+ fin
hClose h
res <- readFile path
let pat = "\\[[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2} [[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2}\\]\\[katip-test.test\\]\\[Info\\]\\[.+\\]\\[[[:digit:]]+\\]\\[ThreadId [[:digit:]]+\\]\\[note.deep:some note\\] test message" :: String
@@ -73,18 +74,18 @@
-------------------------------------------------------------------------------
-setup :: IO (FilePath, Handle, LogEnv)
+setup :: IO (FilePath, Handle, IO (), LogEnv)
setup = do
tempDir <- getTemporaryDirectory
(fp, h) <- openTempFile tempDir "katip.log"
- s <- mkHandleScribe (ColorLog False) h DebugS V3
+ (s, finaliser) <- mkHandleScribe (ColorLog False) h DebugS V3
le <- initLogEnv "katip-test" "test"
- return (fp, h, registerScribe "handle" s le)
+ return (fp, h, finaliser, registerScribe "handle" s le)
-------------------------------------------------------------------------------
-teardown :: (FilePath, Handle, LogEnv) -> IO ()
-teardown (_, h, _) = do
+teardown :: (FilePath, Handle, IO (), LogEnv) -> IO ()
+teardown (_, h, _, _) = do
chk <- hIsOpen h
when chk $ hClose h
1
0
Hello community,
here is the log from the commit of package FlightGear-data for openSUSE:Factory checked in at 2017-06-23 09:17:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/FlightGear-data (Old)
and /work/SRC/openSUSE:Factory/.FlightGear-data.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "FlightGear-data"
Fri Jun 23 09:17:53 2017 rev:4 rq:505349 version:2017.1.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/FlightGear-data/FlightGear-data.changes 2017-03-28 15:23:37.541639948 +0200
+++ /work/SRC/openSUSE:Factory/.FlightGear-data.new/FlightGear-data.changes 2017-06-23 09:17:54.658282825 +0200
@@ -1,0 +2,5 @@
+Wed Jun 21 04:05:39 UTC 2017 - bwiedemann(a)suse.com
+
+- drop unneccesary TeX logs to fix build-compare
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ FlightGear-data.spec ++++++
--- /var/tmp/diff_new_pack.IvvTNu/_old 2017-06-23 09:18:33.040859304 +0200
+++ /var/tmp/diff_new_pack.IvvTNu/_new 2017-06-23 09:18:33.040859304 +0200
@@ -77,6 +77,7 @@
cd ../
# Move docs to default docdir
mkdir -p %{buildroot}%{_defaultdocdir}/%{name}
+find %{buildroot}%{_datadir}/flightgear/Docs/ -name \*.log -print0 | xargs -0 rm # drop unneccesary TeX logs
mv %{buildroot}%{_datadir}/flightgear/Docs %{buildroot}%{_defaultdocdir}/%{name}/
find %{buildroot}%{_datadir}/flightgear -type f -exec chmod 0644 "{}" "+"
1
0
Hello community,
here is the log from the commit of package neko for openSUSE:Factory checked in at 2017-06-23 09:17:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/neko (Old)
and /work/SRC/openSUSE:Factory/.neko.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "neko"
Fri Jun 23 09:17:51 2017 rev:4 rq:505148 version:2.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/neko/neko.changes 2017-06-07 09:55:16.503940883 +0200
+++ /work/SRC/openSUSE:Factory/.neko.new/neko.changes 2017-06-23 09:17:51.846680108 +0200
@@ -1,0 +2,6 @@
+Tue Jun 13 14:48:21 UTC 2017 - jengelh(a)inai.de
+
+- Ensure neutrality of description. Replace filler wording and
+ by more concrete characteristics.
+
+-------------------------------------------------------------------
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ neko.spec ++++++
--- /var/tmp/diff_new_pack.druNkc/_old 2017-06-23 09:17:53.062508311 +0200
+++ /var/tmp/diff_new_pack.druNkc/_new 2017-06-23 09:17:53.066507745 +0200
@@ -53,10 +53,12 @@
Obsoletes: nekovm < %version
%description
-Neko VM is a virtual machine and dynamic language that is both lightweight and efficient.
+Neko VM is a virtual machine for the Neko language. Neko is a
+high-level dynamically typed programming language. It can be used as
+an embedded scripting language.
%package devel
-Summary: Development files for the neko virtual machine
+Summary: Development files for the Neko virtual machine
License: MIT
Group: Development/Languages/Other
Requires: libneko2 = %{version}
@@ -64,7 +66,7 @@
Obsoletes: nekovm-devel < %version
%description devel
-Development files and headers for the neko virtual machine
+Development files and headers for the Neko virtual machine.
%package -n libneko2
Summary: Neko virtual machine shared library
@@ -72,7 +74,7 @@
Group: System/Libraries
%description -n libneko2
-Shared library for the Neko virtual machine
+Shared library for the Neko virtual machine.
%package mysql
Summary: Neko virtual machine MySQL library
@@ -83,7 +85,7 @@
Obsoletes: nekovm-mysql < %version
%description mysql
-MySQL library for the Neko virtual machine
+MySQL library for the Neko virtual machine.
%prep
%setup -q -n neko-%{version}-src
1
0
Hello community,
here is the log from the commit of package aegisub for openSUSE:Factory checked in at 2017-06-23 09:17:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/aegisub (Old)
and /work/SRC/openSUSE:Factory/.aegisub.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "aegisub"
Fri Jun 23 09:17:49 2017 rev:24 rq:504615 version:3.2.2
Changes:
--------
--- /work/SRC/openSUSE:Factory/aegisub/aegisub.changes 2017-06-08 15:02:20.888569569 +0200
+++ /work/SRC/openSUSE:Factory/.aegisub.new/aegisub.changes 2017-06-23 09:17:50.374888073 +0200
@@ -1,0 +2,5 @@
+Mon Jun 19 10:43:28 UTC 2017 - rpm(a)fthiessen.de
+
+- Added luabins.patch to fix build with lua 5.2 / 5.3.
+
+-------------------------------------------------------------------
New:
----
luabins.patch
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ aegisub.spec ++++++
--- /var/tmp/diff_new_pack.Ep4JCC/_old 2017-06-23 09:17:51.614712885 +0200
+++ /var/tmp/diff_new_pack.Ep4JCC/_new 2017-06-23 09:17:51.618712320 +0200
@@ -31,6 +31,7 @@
Patch2: remove-vendor-luajit-dependency.patch
Patch3: icu59.patch
Patch4: aegisub-no-optimize.patch
+Patch5: luabins.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gcc-c++
@@ -76,6 +77,7 @@
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
FAKE_BUILDDATE=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%b %%e %%Y')
sed -i "s/__DATE__/\"$FAKE_BUILDDATE\"/" src/version.cpp
FAKE_BUILDTIME=$(LC_ALL=C date -u -r %{_sourcedir}/%{name}.changes '+%%H:%%M:%%S')
++++++ luabins.patch ++++++
diff -Nur aegisub-3.2.2/libaegisub/lua/modules/lpeg.c new/libaegisub/lua/modules/lpeg.c
--- aegisub-3.2.2/libaegisub/lua/modules/lpeg.c 2014-12-08 01:07:09.000000000 +0100
+++ new/libaegisub/lua/modules/lpeg.c 2017-06-19 12:33:03.929957005 +0200
@@ -2334,7 +2334,7 @@
}
-static struct luaL_reg pattreg[] = {
+static struct luaL_Reg pattreg[] = {
{"match", matchl},
{"print", printpat_l},
{"locale", locale_l},
@@ -2360,7 +2360,7 @@
};
-static struct luaL_reg metapattreg[] = {
+static struct luaL_Reg metapattreg[] = {
{"__add", union_l},
{"__pow", star_l},
{"__sub", diff_l},
diff -Nur aegisub-3.2.2/vendor/luabins/AUTHORS new/vendor/luabins/AUTHORS
--- aegisub-3.2.2/vendor/luabins/AUTHORS 2014-12-08 01:07:09.000000000 +0100
+++ new/vendor/luabins/AUTHORS 2016-12-17 08:09:13.000000000 +0100
@@ -2,3 +2,4 @@
----------------
Alexander Gladysh <agladysh(a)gmail.com>
+hanxi <hanxi(a)gmail.com>
diff -Nur aegisub-3.2.2/vendor/luabins/README.md new/vendor/luabins/README.md
--- aegisub-3.2.2/vendor/luabins/README.md 2014-12-08 01:07:09.000000000 +0100
+++ new/vendor/luabins/README.md 2016-12-17 08:09:13.000000000 +0100
@@ -4,6 +4,8 @@
Allows to save tuples of primitive Lua types into binary chunks
and to load saved data back.
+NB: You may be better off with luatexts: https://github.com/agladysh/luatexts.
+
On serialization
----------------
diff -Nur aegisub-3.2.2/vendor/luabins/src/luabins.c new/vendor/luabins/src/luabins.c
--- aegisub-3.2.2/vendor/luabins/src/luabins.c 2014-12-08 01:07:09.000000000 +0100
+++ new/vendor/luabins/src/luabins.c 2016-12-17 08:09:13.000000000 +0100
@@ -54,7 +54,7 @@
}
/* luabins Lua module API */
-static const struct luaL_reg R[] =
+static const struct luaL_Reg R[] =
{
{ "save", l_save },
{ "load", l_load },
diff -Nur aegisub-3.2.2/vendor/luabins/src/luaheaders.h new/vendor/luabins/src/luaheaders.h
--- aegisub-3.2.2/vendor/luabins/src/luaheaders.h 2014-12-08 01:07:09.000000000 +0100
+++ new/vendor/luabins/src/luaheaders.h 2016-12-17 08:09:13.000000000 +0100
@@ -7,6 +7,16 @@
#include <lua.h>
#include <lauxlib.h>
+
+#if !defined LUA_VERSION_NUM
+#define luaL_Reg luaL_reg
+#endif
+
+#if LUA_VERSION_NUM > 501
+#define luaL_register(L,n,R) (luaL_newlib(L,R))
+#define lua_objlen(L,i) lua_rawlen(L, (i))
+#endif
+
#if defined (__cplusplus) && !defined (LUABINS_LUABUILTASCPP)
}
#endif
diff -Nur aegisub-3.2.2/vendor/luabins/src/luainternals.h new/vendor/luabins/src/luainternals.h
--- aegisub-3.2.2/vendor/luabins/src/luainternals.h 2014-12-08 01:07:09.000000000 +0100
+++ new/vendor/luabins/src/luainternals.h 2017-06-19 12:26:34.402690003 +0200
@@ -7,6 +7,24 @@
#ifndef LUABINS_LUAINTERNALS_H_INCLUDED_
#define LUABINS_LUAINTERNALS_H_INCLUDED_
+#ifndef LUAI_BITSINT
+/*
+* LUAI_BITSINT defines the number of bits in an int.
+* CHANGE here if Lua cannot automatically detect the number of bits of
+* your machine. Probably you do not need to change this.
+*
+* avoid overflows in comparison */
+#if INT_MAX-20 < 32760
+#define LUAI_BITSINT 16
+#elif INT_MAX > 2147483640L
+/* int has at least 32 bits */
+#define LUAI_BITSINT 32
+#else
+#error "you must define LUA_BITSINT with number of bits in an integer"
+#endif
+
+#endif // ifndef LUAI_BITSINT
+
/*
* BEGIN COPY-PASTE FROM Lua 5.1.4 luaconf.h
* WARNING: If your Lua config differs, fix this!
@@ -38,7 +56,6 @@
/*
** max size of array part is 2^MAXBITS
*/
-#define LUAI_BITSINT 32
#if LUAI_BITSINT > 26
#define MAXBITS 26
#else
diff -Nur aegisub-3.2.2/vendor/luabins/src/lualess.c new/vendor/luabins/src/lualess.c
--- aegisub-3.2.2/vendor/luabins/src/lualess.c 1970-01-01 01:00:00.000000000 +0100
+++ new/vendor/luabins/src/lualess.c 2016-12-17 08:09:13.000000000 +0100
@@ -0,0 +1,32 @@
+/*
+* lualess.h
+* Lua-related definitions for lua-less builds (based on Lua manual)
+* See copyright notice in luabins.h
+*/
+
+#include <stdlib.h>
+
+/*
+* lua_Alloc-compatible allocator to use in Lua-less applications
+* with lbs_SaveBuffer. Based on sample code from Lua 5.1 manual.
+*/
+void * lbs_simplealloc(
+ void * ud,
+ void * ptr,
+ size_t osize,
+ size_t nsize
+ )
+{
+ (void) ud;
+ (void) osize; /* not used */
+
+ if (nsize == 0)
+ {
+ free(ptr);
+ return NULL;
+ }
+ else
+ {
+ return realloc(ptr, nsize);
+ }
+}
diff -Nur aegisub-3.2.2/vendor/luabins/test/test.lua new/vendor/luabins/test/test.lua
--- aegisub-3.2.2/vendor/luabins/test/test.lua 2014-12-08 01:07:09.000000000 +0100
+++ new/vendor/luabins/test/test.lua 2016-12-17 08:09:13.000000000 +0100
@@ -6,6 +6,8 @@
package.cpath = "./?.so;"..package.cpath
+local pack = pack or table.pack
+local unpack = unpack or table.unpack
local randomseed = 1235134892
--local randomseed = os.time()
@@ -145,6 +147,7 @@
-- Test helper functions
-- ----------------------------------------------------------------------------
+luabins = require 'luabins'
local luabins_local = require 'luabins'
assert(luabins_local == luabins)
@@ -281,7 +284,7 @@
"can't save: unsupported type detected",
coroutine.create(function() end)
)
-check_fail_save("can't save: unsupported type detected", newproxy())
+check_fail_save("can't save: unsupported type detected", function()end)
print("---> basic table tests")
1
0
Hello community,
here is the log from the commit of package trinity for openSUSE:Factory checked in at 2017-06-23 09:17:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/trinity (Old)
and /work/SRC/openSUSE:Factory/.trinity.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "trinity"
Fri Jun 23 09:17:45 2017 rev:40 rq:504038 version:1.7+git.20170612
Changes:
--------
--- /work/SRC/openSUSE:Factory/trinity/trinity.changes 2017-05-20 10:13:42.715470746 +0200
+++ /work/SRC/openSUSE:Factory/.trinity.new/trinity.changes 2017-06-23 09:17:47.459300048 +0200
@@ -1,0 +2,23 @@
+Fri Jun 16 09:17:12 UTC 2017 - mpluskal(a)suse.com
+
+- Update to version 1.7+git.20170612:
+ * mark the sync syscalls as expensive
+ * reduce the likelyhood that we call expensive syscalls.
+
+-------------------------------------------------------------------
+Sun May 28 11:43:25 UTC 2017 - opensuse-packaging(a)opensuse.org
+
+- Update to version 1.7+git.20170525:
+ * add incoming packets to the correct place in the list.
+ * add the last op_nr to the childexited message
+ * add a flag to mark when we're expecting a spawn message.
+ * only process CHILD_EXITED messages if the opnr is current
+ * maintain a count of packets processed each scan of the child list.
+ * childhdr is already set at this point.
+ * use a single thread to process all child packets
+ * optimize packet rx list walk
+ * drop duplicate packets instead of adding them to the list.
+ * fix up cppcheck signedness warnings
+ * replace state machine with simpler drain logic
+
+-------------------------------------------------------------------
Old:
----
trinity-1.7+git.20170512.tar.xz
New:
----
trinity-1.7+git.20170612.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ trinity.spec ++++++
--- /var/tmp/diff_new_pack.dgfJiU/_old 2017-06-23 09:17:48.751117514 +0200
+++ /var/tmp/diff_new_pack.dgfJiU/_new 2017-06-23 09:17:48.755116949 +0200
@@ -16,9 +16,9 @@
#
-%define version_unconverted 1.7+git.20170512
+%define version_unconverted 1.7+git.20170612
Name: trinity
-Version: 1.7+git.20170512
+Version: 1.7+git.20170612
Release: 0
Summary: A Linux System call fuzz tester
License: GPL-2.0
++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.dgfJiU/_old 2017-06-23 09:17:48.807109602 +0200
+++ /var/tmp/diff_new_pack.dgfJiU/_new 2017-06-23 09:17:48.807109602 +0200
@@ -1,4 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">git://github.com/kernelslacker/trinity</param>
- <param name="changesrevision">a81fba1701ad9250f91f87c7748940525eaaffa4</param></service></servicedata>
\ No newline at end of file
+ <param name="changesrevision">f21c0a62f708688f3df574911525e2b14be01d5e</param></service></servicedata>
\ No newline at end of file
++++++ trinity-1.7+git.20170512.tar.xz -> trinity-1.7+git.20170612.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/childops/random-syscall.c new/trinity-1.7+git.20170612/childops/random-syscall.c
--- old/trinity-1.7+git.20170512/childops/random-syscall.c 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/childops/random-syscall.c 2017-06-12 21:21:10.000000000 +0200
@@ -71,6 +71,7 @@
static bool set_syscall_nr(struct syscallrecord *rec)
{
+ struct syscallentry *entry;
unsigned int syscallnr;
bool do32;
@@ -97,6 +98,12 @@
goto retry;
}
+ entry = get_syscall_entry(syscallnr, do32);
+ if (entry->flags & EXPENSIVE) {
+ if (!ONE_IN(1000))
+ goto retry;
+ }
+
/* critical section for shm updates. */
lock(&rec->lock);
rec->do32bit = do32;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/include/syscall.h new/trinity-1.7+git.20170612/include/syscall.h
--- old/trinity-1.7+git.20170512/include/syscall.h 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/include/syscall.h 2017-06-12 21:21:10.000000000 +0200
@@ -171,6 +171,7 @@
#define NEED_ALARM (1<<5)
#define EXTRA_FORK (1<<6)
#define IGNORE_ENOSYS (1<<7)
+#define EXPENSIVE (1<<8)
void do_syscall(struct syscallrecord *rec);
void handle_syscall_ret(struct syscallrecord *rec);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/include/udp.h new/trinity-1.7+git.20170612/include/udp.h
--- old/trinity-1.7+git.20170512/include/udp.h 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/include/udp.h 2017-06-12 21:21:10.000000000 +0200
@@ -96,6 +96,7 @@
struct msg_childexited {
struct trinity_msgchildhdr hdr;
+ unsigned long op_nr;
};
struct msg_childsignalled {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/main.c new/trinity-1.7+git.20170612/main.c
--- old/trinity-1.7+git.20170512/main.c 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/main.c 2017-06-12 21:21:10.000000000 +0200
@@ -577,11 +577,13 @@
}
}
-static void log_child_exited(pid_t pid, int childno)
+static void log_child_exited(struct childdata *child)
{
struct msg_childexited childmsg;
- init_msgchildhdr(&childmsg.hdr, CHILD_EXITED, pid, childno);
+ init_msgchildhdr(&childmsg.hdr, CHILD_EXITED,
+ pids[child->num], child->num);
+ childmsg.op_nr = child->op_nr;
sendudp((char *) &childmsg, sizeof(childmsg));
}
@@ -599,7 +601,7 @@
if (WIFEXITED(childstatus)) {
struct childdata *child = shm->children[childno];
- log_child_exited(childpid, childno);
+ log_child_exited(child);
debugf("Child %d (pid:%u type:%u) exited after %ld operations.\n",
childno, childpid, child->type, child->op_nr);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/server/child.c new/trinity-1.7+git.20170612/server/child.c
--- old/trinity-1.7+git.20170512/server/child.c 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/server/child.c 2017-06-12 21:21:10.000000000 +0200
@@ -30,8 +30,6 @@
child = &session.children[childmsg->hdr.childno];
child->childpid = childmsg->hdr.pid;
- child->expected_seq = 0;
- child->expecting_result = FALSE;
return p;
}
@@ -43,9 +41,9 @@
childmsg = (struct msg_childexited *) buf;
ts = &childmsg->hdr.tp;
- sprintf(p, "%d.%d Child exited. id:%d pid:%d\n",
+ sprintf(p, "%d.%d Child exited. id:%d pid:%d lastop:%lu\n",
(int) ts->tv_sec, (int) ts->tv_nsec,
- childmsg->hdr.childno, childmsg->hdr.pid);
+ childmsg->hdr.childno, childmsg->hdr.pid, childmsg->op_nr);
return p;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/server/child.h new/trinity-1.7+git.20170612/server/child.h
--- old/trinity-1.7+git.20170512/server/child.h 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/server/child.h 2017-06-12 21:21:10.000000000 +0200
@@ -6,8 +6,7 @@
pid_t childpid;
struct packet packets;
unsigned int packetcount;
+ pthread_mutex_t drainmutex;
pthread_mutex_t packetmutex;
int logfile;
- unsigned long expected_seq;
- bool expecting_result;
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/server/session.h new/trinity-1.7+git.20170612/server/session.h
--- old/trinity-1.7+git.20170512/server/session.h 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/server/session.h 2017-06-12 21:21:10.000000000 +0200
@@ -7,9 +7,9 @@
struct fuzzsession {
pid_t mainpid;
- int num_children;
+ unsigned int num_children;
struct childdata children[MAX_CHILDREN];
- pthread_t childthreads[MAX_CHILDREN];
+ pthread_t decodethread;
pthread_mutex_t packetmutex;
struct packet mainpackets;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/server/trinityserver.c new/trinity-1.7+git.20170612/server/trinityserver.c
--- old/trinity-1.7+git.20170512/server/trinityserver.c 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/server/trinityserver.c 2017-06-12 21:21:10.000000000 +0200
@@ -4,6 +4,7 @@
#include <errno.h>
#include <netdb.h>
#include <pthread.h>
+#include <signal.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
@@ -59,86 +60,43 @@
child->packetcount--;
}
-static void * decoder_child_func(void *data)
+static void decode_one_child(struct childdata *child)
{
- struct childdata *child = (struct childdata *) data;
struct list_head *node = NULL, *tmp;
- while (1) {
- pthread_mutex_lock(&child->packetmutex);
- if (list_empty(&child->packets.list))
- goto done;
-
- list_for_each_safe(node, tmp, &child->packets.list) {
- struct packet *currpkt;
- struct trinity_msgchildhdr *childhdr;
- enum logmsgtypes type;
-
- currpkt = (struct packet *) node;
- type = get_packet_type(currpkt);
-
- // The non syscall related messages have no ordering on each other asides from timestamp
- switch (type) {
- case CHILD_SPAWNED:
- case CHILD_EXITED:
- // TODO: put lastop in the exit msg and wait until that op before processing this.
- // TODO: check signalled->op_nr == expected-1
- decode_this_packet(child, currpkt);
- child->expecting_result = FALSE;
- continue;
-
- case CHILD_SIGNALLED:
- // TODO: check signalled->op_nr == expected-1
- decode_this_packet(child, currpkt);
- child->expecting_result = FALSE;
- // TODO: only if SIGALRM
- child->expected_seq++;
- continue;
- default:
- break;
- }
+ pthread_mutex_lock(&child->packetmutex);
+ if (list_empty(&child->packets.list))
+ goto done;
- /* From here on, type can only be SYSCALL_PREP or SYSCALL_RESULT */
+ list_for_each_safe(node, tmp, &child->packets.list) {
+ struct packet *currpkt;
- /* if the pid changed, before we gto a CHILD_SPAWNED, skip */
- childhdr = (struct trinity_msgchildhdr *) currpkt->data;
- if (child->childpid != childhdr->pid)
- continue;
-
- if (type == SYSCALL_PREP) {
- struct msg_syscallprep *scmsg;
- if (child->expecting_result == TRUE)
- continue;
-
- scmsg = (struct msg_syscallprep *) currpkt->data;
- if (scmsg->sequence_nr != child->expected_seq)
- continue;
-
- decode_this_packet(child, currpkt);
- child->expecting_result = TRUE;
- continue;
- }
+ currpkt = (struct packet *) node;
- if (type == SYSCALL_RESULT) {
- struct msg_syscallresult *srmsg;
- if (child->expecting_result == FALSE)
- continue;
-
- srmsg = (struct msg_syscallresult *) currpkt->data;
- if (srmsg->sequence_nr != child->expected_seq)
- continue;
-
- decode_this_packet(child, currpkt);
- child->expecting_result = FALSE;
- child->expected_seq++;
- continue;
- }
- }
+ decode_this_packet(child, currpkt);
+ }
done:
- pthread_mutex_unlock(&child->packetmutex);
+ pthread_mutex_unlock(&child->packetmutex);
+}
+
+static void * decoder_func(void *data)
+{
+ struct fuzzsession *fs = (struct fuzzsession *) data;
+
+ while (1) {
+ unsigned int i;
+ for (i = 0; i < fs->num_children; i++) {
+ struct childdata *child = &fs->children[i];
+
+ if (pthread_mutex_trylock(&child->drainmutex) == 0) {
+ decode_one_child(child);
+ pthread_mutex_unlock(&child->drainmutex);
+ }
+ }
pthread_yield();
}
+
//TODO: if main session exits, we should exit this thread.
return NULL;
}
@@ -165,6 +123,7 @@
}
}
pthread_mutex_unlock(&fs->packetmutex);
+ pthread_yield();
//TODO: if main session exits, we should exit this thread.
}
return NULL;
@@ -175,6 +134,7 @@
{
struct hellostruct *hs = (struct hellostruct *) buf;
int i;
+ int ret;
/* if we got here, we know we got a correct size message, but the contents
* need to match also for it to be a handshake.
@@ -196,18 +156,17 @@
for (i = 0; i < hs->num_children; i++) {
struct childdata *child = &session.children[i];
- int ret;
child->logfile = open_child_logfile(i);
- child->expected_seq = 0;
- child->expecting_result = FALSE;
INIT_LIST_HEAD(&child->packets.list);
child->packetcount = 0;
pthread_mutex_init(&child->packetmutex, NULL);
- ret = pthread_create(&session.childthreads[i], NULL, decoder_child_func, child);
- assert(!ret);
+ pthread_mutex_init(&child->drainmutex, NULL);
}
+ ret = pthread_create(&session.decodethread, NULL, decoder_func, &session);
+ assert(!ret);
+
printf("Received handshake from %s:%d\n", inet_ntoa(udpclient.sin_addr), ntohs(udpclient.sin_port));
sendudp(serverreply, strlen(serverreply));
@@ -260,7 +219,8 @@
struct fuzzsession *fs = &session;
struct trinity_msgchildhdr *childhdr;
struct childdata *child;
- struct list_head *node, *tmp;
+ struct list_head *node, *tmp, *tail;
+ struct packet *listpkt;
pkt->data = malloc(len);
if (pkt->data == NULL) {
@@ -281,15 +241,34 @@
if (list_empty(&child->packets.list))
goto tail_add;
+ /* Can we just go at the end ? */
+ tail = child->packets.list.prev;
+ listpkt = (struct packet *) tail;
+
+ if (childhdr->tp.tv_sec > listpkt->tp.tv_sec)
+ goto tail_add;
+
+ if (childhdr->tp.tv_sec == listpkt->tp.tv_sec) {
+ if (childhdr->tp.tv_nsec > listpkt->tp.tv_nsec)
+ goto tail_add;
+ if (childhdr->tp.tv_nsec == listpkt->tp.tv_nsec)
+ goto drop_dupe;
+ }
+
+ /* crap, we've got something out of order, scan the list for the right place
+ * to insert it. TODO: Might be quicker to search backwards from the tail
+ */
list_for_each_safe(node, tmp, &child->packets.list) {
- struct packet *listpkt = (struct packet *) node;
+ listpkt = (struct packet *) node;
if (childhdr->tp.tv_sec > listpkt->tp.tv_sec)
continue;
if (childhdr->tp.tv_nsec > listpkt->tp.tv_nsec)
continue;
+ if (childhdr->tp.tv_nsec == listpkt->tp.tv_nsec)
+ goto drop_dupe;
- list_add(&pkt->list, node);
+ list_add(&pkt->list, node->prev);
goto done;
}
@@ -299,6 +278,21 @@
done:
child->packetcount++;
pthread_mutex_unlock(&child->packetmutex);
+ return;
+
+drop_dupe:
+ free(pkt->data);
+ free(pkt);
+ pthread_mutex_unlock(&child->packetmutex);
+}
+
+static struct childdata * get_child_from_pkt(void *data)
+{
+ struct fuzzsession *fs = &session;
+ struct trinity_msgchildhdr *childhdr;
+
+ childhdr = (struct trinity_msgchildhdr *) data;
+ return &fs->children[childhdr->childno];
}
static void queue_object_msg(struct trinity_msgobjhdr *obj, int len)
@@ -316,7 +310,9 @@
enum logmsgtypes type;
while (1) {
+ struct childdata *child;
int ret = readudp();
+
if (ret <= 0)
continue;
@@ -349,8 +345,24 @@
break;
case CHILD_SPAWNED:
+ child = get_child_from_pkt(buf);
+ pthread_mutex_lock(&child->drainmutex);
+ add_to_child_queue(buf, len);
+ break;
+
case CHILD_EXITED:
+ add_to_child_queue(buf, len);
+ child = get_child_from_pkt(buf);
+ pthread_mutex_unlock(&child->drainmutex);
+ break;
+
case CHILD_SIGNALLED:
+ add_to_child_queue(buf, len);
+ //child = get_child_from_pkt(buf);
+ //FIXME: only if signal = child exits.
+ //pthread_mutex_unlock(&child->drainmutex);
+ break;
+
case SYSCALL_PREP:
case SYSCALL_RESULT:
add_to_child_queue(buf, len);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/syscalls/fdatasync.c new/trinity-1.7+git.20170612/syscalls/fdatasync.c
--- old/trinity-1.7+git.20170512/syscalls/fdatasync.c 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/syscalls/fdatasync.c 2017-06-12 21:21:10.000000000 +0200
@@ -12,6 +12,6 @@
.arg1name = "fd",
.arg1type = ARG_FD,
.rettype = RET_ZERO_SUCCESS,
- .flags = NEED_ALARM,
+ .flags = NEED_ALARM | EXPENSIVE,
.group = GROUP_VFS,
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/syscalls/fsync.c new/trinity-1.7+git.20170612/syscalls/fsync.c
--- old/trinity-1.7+git.20170512/syscalls/fsync.c 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/syscalls/fsync.c 2017-06-12 21:21:10.000000000 +0200
@@ -12,6 +12,6 @@
.arg1name = "fd",
.arg1type = ARG_FD,
.rettype = RET_ZERO_SUCCESS,
- .flags = NEED_ALARM,
+ .flags = NEED_ALARM | EXPENSIVE,
.group = GROUP_VFS,
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/syscalls/sync.c new/trinity-1.7+git.20170612/syscalls/sync.c
--- old/trinity-1.7+git.20170512/syscalls/sync.c 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/syscalls/sync.c 2017-06-12 21:21:10.000000000 +0200
@@ -7,4 +7,5 @@
.name = "sync",
.num_args = 0,
.group = GROUP_VFS,
+ .flags = EXPENSIVE,
};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/trinity-1.7+git.20170512/syscalls/syncfs.c new/trinity-1.7+git.20170612/syscalls/syncfs.c
--- old/trinity-1.7+git.20170512/syscalls/syncfs.c 2017-05-12 20:11:06.000000000 +0200
+++ new/trinity-1.7+git.20170612/syscalls/syncfs.c 2017-06-12 21:21:10.000000000 +0200
@@ -8,6 +8,6 @@
.num_args = 1,
.arg1name = "fd",
.arg1type = ARG_FD,
- .flags = NEED_ALARM,
+ .flags = NEED_ALARM | EXPENSIVE,
.group = GROUP_VFS,
};
1
0