Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gsmartcontrol for openSUSE:Factory checked in at 2022-08-11 18:32:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gsmartcontrol (Old) and /work/SRC/openSUSE:Factory/.gsmartcontrol.new.1521 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gsmartcontrol" Thu Aug 11 18:32:27 2022 rev:8 rq:994417 version:1.1.4 Changes: -------- --- /work/SRC/openSUSE:Factory/gsmartcontrol/gsmartcontrol.changes 2017-11-13 14:06:11.005612697 +0100 +++ /work/SRC/openSUSE:Factory/.gsmartcontrol.new.1521/gsmartcontrol.changes 2022-08-11 18:32:41.570255373 +0200 @@ -1,0 +2,25 @@ +Tue Aug 9 09:26:06 UTC 2022 - ecsos <ec...@opensuse.org> + +- Update to version 1.1.4 + - Fixed a crash when trying to render main window icons which + have incomplete data; + this fixes a rare crash when scanning devices (#13). + - Fixed rendering compatibility issues with newer GTK3 versions. + - Fixed build system conflict with C++20 version header (#14). + - Fixed "Running command ..." dialog floating above windows of + other applications (#17). + - Fixed a crash when system locale is set to invalid locale. + - Support Finnish decimal separator + (backported from the Debian package) (#23). + - Set LC_NUMERIC=C for smartctl process to avoid locale-dependent + number formatting (#23). + - Fixed printing all GTK messages as warnings; the messages are + sorted by severity now. + - Add current time to default filename in Save Output dialog. + - Support macos stat command in file2csource.sh. + - Fixed a few typos (backported from the Debian package). + - Windows port now uses Adwaita theme due to issues with win32 theme. + - Windows port is dpi-aware now. +- Run spec-cleaner. + +------------------------------------------------------------------- Old: ---- gsmartcontrol-1.1.3.tar.bz2 New: ---- gsmartcontrol-1.1.4.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gsmartcontrol.spec ++++++ --- /var/tmp/diff_new_pack.lpE44Q/_old 2022-08-11 18:32:42.394254109 +0200 +++ /var/tmp/diff_new_pack.lpE44Q/_new 2022-08-11 18:32:42.398254103 +0200 @@ -1,7 +1,7 @@ # # spec file for package gsmartcontrol # -# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -12,32 +12,32 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # Name: gsmartcontrol -Version: 1.1.3 +Version: 1.1.4 Release: 0 Summary: Hard Disk Health Inspection Tool -License: GPL-2.0 or GPL-3.0 +License: GPL-2.0-only OR GPL-3.0-only Group: Hardware/Other -Url: http://gsmartcontrol.sourceforge.net/ +URL: http://gsmartcontrol.sourceforge.net/ Source0: http://downloads.sourceforge.net/%{name}/%{version}/%{name}-%{version}.tar.bz2 Source1: %{name}-rpmlintrc BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: hicolor-icon-theme BuildRequires: libstdc++-devel +BuildRequires: pkgconfig BuildRequires: polkit BuildRequires: update-desktop-files -BuildRequires: pkgconfig(gtkmm-3.0) +BuildRequires: pkgconfig(gtkmm-3.0) >= 3.4 BuildRequires: pkgconfig(libpcre) Requires: pcre Requires: polkit Requires: smartmontools >= 5.43 Recommends: xdg-utils -BuildRoot: %{_tmppath}/%{name}-%{version}-build %description GSmartControl is a graphical user interface for smartctl, which is a tool for @@ -47,15 +47,18 @@ %prep %setup -q +#rpmlintrc +sed -i -e 's|\/usr\/bin\/env bash|\/usr\/bin\/bash|g' data/gsmartcontrol-root.in %build %configure --docdir=%{_defaultdocdir}/%{name} --enable-optimize-options=auto -make %{?_smp_mflags} +%make_build %install %make_install %suse_update_desktop_file %{name} %fdupes -s %{buildroot}%{_prefix} +rm %{buildroot}%{_defaultdocdir}/%{name}/LICENSE_*.txt %post %desktop_database_post @@ -66,12 +69,12 @@ %icon_theme_cache_postun %files -%defattr(-,root,root,-) %doc %{_defaultdocdir}/%{name} +%license COPYING LICENSE_*.txt %{_sbindir}/%{name} %{_bindir}/%{name}-root -%{_mandir}/man1/%{name}.1%{ext_man} -%{_mandir}/man1/%{name}-root.1%{ext_man} +%{_mandir}/man1/%{name}.1%{?ext_man} +%{_mandir}/man1/%{name}-root.1%{?ext_man} %{_datadir}/%{name} %{_datadir}/applications/%{name}.desktop %dir %{_datadir}/metainfo ++++++ gsmartcontrol-1.1.3.tar.bz2 -> gsmartcontrol-1.1.4.tar.bz2 ++++++ ++++ 5814 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/gsmartcontrol-1.1.3/Makefile.am new/gsmartcontrol-1.1.4/Makefile.am --- old/gsmartcontrol-1.1.3/Makefile.am 2017-09-25 15:46:16.000000000 +0200 +++ new/gsmartcontrol-1.1.4/Makefile.am 2022-02-04 10:31:17.000000000 +0100 @@ -71,7 +71,8 @@ win-dist-prepare-all: nsis-dist-prepare win-zip-dist-prepare -# All of GTK+ +# All of GTK+. +# This includes both MSYS and OpenSUSE/mingw patterns. GTK_BIN_FILES = gdk-pixbuf-query-loaders.exe \ gspawn-win32-helper-console.exe \ gspawn-win32-helper.exe \ @@ -81,14 +82,18 @@ gtk-update-icon-cache-3.0.exe \ libatk-1.*.dll \ libatkmm-1.*.dll \ + libbrotlidec.dll \ + libbrotlicommon.dll \ libbz2-*.dll \ libcairo-*.dll \ libcairomm-1*.dll \ + libdatrie-*.dll \ libepoxy-*.dll \ libffi-*.dll \ libexpat-*.dll \ libfontconfig-*.dll \ libfreetype-*.dll \ + libfribidi-*.dll \ libgdk-3*.dll \ libgdk_pixbuf-2.*.dll \ libgdkmm-3.*.dll \ @@ -103,7 +108,7 @@ libgtk-3*.dll \ libgtkmm-3*.dll \ libharfbuzz*.dll \ - libiconv*.dll \ + libiconv-*.dll \ libintl*.dll \ libjasper*.dll \ libjpeg*.dll \ @@ -112,11 +117,14 @@ libpixman*.dll \ libpng16-*.dll \ libsigc-2.*.dll \ + libssp-*.dll \ libstdc++-*.dll \ + libthai-*.dll \ libtiff-*.dll \ libwinpthread-*.dll \ libxml2-*.dll \ - zlib1.dll + zlib1.dll \ + libz.dll # Don't strip smartctl (it will only change the header), and @@ -130,7 +138,9 @@ cp $(top_srcdir)/AUTHORS.txt $(top_srcdir)/LICENSE_* $(top_srcdir)/README.txt win-dist/doc/ cp $(top_srcdir)/NEWS win-dist/doc/NEWS.txt - cp src/gsmartcontrol.exe src/gsmartcontrol.exe.manifest win-dist/ +# The manifest is already embedded in exe +# cp src/gsmartcontrol.exe src/gsmartcontrol.exe.manifest win-dist/ + cp src/gsmartcontrol.exe win-dist/ unix2dos win-dist/doc/*.txt @@ -147,7 +157,12 @@ $(MKDIR_P) win-dist/etc/gtk-3.0 cp -p "@WINDOWS_SYSROOT@"/etc/fonts/fonts.conf win-dist/etc/fonts/ # cp -p "@WINDOWS_SYSROOT@"/etc/gtk-3.0/im-multipress.conf win-dist/etc/gtk-3.0/ - cp -p "@WINDOWS_SYSROOT@"/etc/gtk-3.0/settings.ini win-dist/etc/gtk-3.0/ +# cp -p "@WINDOWS_SYSROOT@"/etc/gtk-3.0/settings.ini win-dist/etc/gtk-3.0/ + +# Without loaders, images and native file dialog do not work. + $(MKDIR_P) win-dist/lib + $(MKDIR_P) win-dist/lib/gdk-pixbuf-2.0 + cp -p -r "@WINDOWS_SYSROOT@"/lib/gdk-pixbuf-2.0/2.10.0 win-dist/lib/gdk-pixbuf-2.0 $(MKDIR_P) win-dist/share cp -p -r "@WINDOWS_SYSROOT@"/share/themes win-dist/share @@ -159,66 +174,93 @@ # $(MKDIR_P) win-dist/share/icons # cp -p "@WINDOWS_SYSROOT@"/share/icons/hicolor win-dist/share/icons -# needed for window titlebar (if using client-side decorations), +# Needed for window titlebar (if using client-side decorations), # tree sorting indicators, GUI icons. +# Note that the current Adwaita uses "ui" directory, while win32 theme expects "actions". + $(MKDIR_P) win-dist/share/icons/Adwaita + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/index.theme win-dist/share/icons/Adwaita $(MKDIR_P) win-dist/share/icons/Adwaita/16x16/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/actions $(MKDIR_P) win-dist/share/icons/Adwaita/16x16/status - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/status/dialog-information.png win-dist/share/icons/Adwaita/16x16/status - $(MKDIR_P) win-dist/share/icons/Adwaita/22x22/status - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/22x22/status/dialog-information.png win-dist/share/icons/Adwaita/22x22/status + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/16x16/status + $(MKDIR_P) win-dist/share/icons/Adwaita/16x16/devices + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/devices/drive-harddisk.png win-dist/share/icons/Adwaita/16x16/devices + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/16x16/devices/media-optical.png win-dist/share/icons/Adwaita/16x16/devices +# $(MKDIR_P) win-dist/share/icons/Adwaita/22x22/status +# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/22x22/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/22x22/status $(MKDIR_P) win-dist/share/icons/Adwaita/24x24/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/actions + $(MKDIR_P) win-dist/share/icons/Adwaita/24x24/devices + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/devices/drive-harddisk.png win-dist/share/icons/Adwaita/24x24/devices + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/devices/media-optical.png win-dist/share/icons/Adwaita/24x24/devices $(MKDIR_P) win-dist/share/icons/Adwaita/24x24/status - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/status/dialog-information.png win-dist/share/icons/Adwaita/24x24/status + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/24x24/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/24x24/status $(MKDIR_P) win-dist/share/icons/Adwaita/32x32/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/actions + $(MKDIR_P) win-dist/share/icons/Adwaita/32x32/devices + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/devices/drive-harddisk.png win-dist/share/icons/Adwaita/32x32/devices + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/devices/media-optical.png win-dist/share/icons/Adwaita/32x32/devices $(MKDIR_P) win-dist/share/icons/Adwaita/32x32/status - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/status/dialog-information.png win-dist/share/icons/Adwaita/32x32/status + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/32x32/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/32x32/status $(MKDIR_P) win-dist/share/icons/Adwaita/48x48/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/actions + $(MKDIR_P) win-dist/share/icons/Adwaita/48x48/devices + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/devices/drive-harddisk.png win-dist/share/icons/Adwaita/48x48/devices + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/devices/media-optical.png win-dist/share/icons/Adwaita/48x48/devices $(MKDIR_P) win-dist/share/icons/Adwaita/48x48/status - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/status/dialog-information.png win-dist/share/icons/Adwaita/48x48/status + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/48x48/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/48x48/status $(MKDIR_P) win-dist/share/icons/Adwaita/64x64/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions -# $(MKDIR_P) win-dist/share/icons/Adwaita/64x64/status -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/status/dialog-information.png win-dist/share/icons/Adwaita/64x64/status + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/actions +# $(MKDIR_P) win-dist/share/icons/Adwaita/64x64/devices +# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/devices/drive-harddisk.png win-dist/share/icons/Adwaita/64x64/devices +# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/devices/media-optical.png win-dist/share/icons/Adwaita/64x64/devices + $(MKDIR_P) win-dist/share/icons/Adwaita/64x64/status + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/64x64/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/64x64/status $(MKDIR_P) win-dist/share/icons/Adwaita/96x96/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/actions/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions -# $(MKDIR_P) win-dist/share/icons/Adwaita/96x96/status -# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/status/dialog-information.png win-dist/share/icons/Adwaita/96x96/status - $(MKDIR_P) win-dist/share/icons/Adwaita/256x256/status - cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/256x256/status/dialog-information.png win-dist/share/icons/Adwaita/256x256/status + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/window-close-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/window-maximize-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/window-minimize-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/window-restore-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/pan-down-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/ui/pan-up-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/actions +# $(MKDIR_P) win-dist/share/icons/Adwaita/96x96/devices +# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/devices/drive-harddisk.png win-dist/share/icons/Adwaita/96x96/devices +# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/devices/media-optical.png win-dist/share/icons/Adwaita/96x96/devices + $(MKDIR_P) win-dist/share/icons/Adwaita/96x96/status + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/96x96/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/96x96/status +# $(MKDIR_P) win-dist/share/icons/Adwaita/256x256/devices +# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/256x256/devices/drive-harddisk.png win-dist/share/icons/Adwaita/256x256/devices +# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/256x256/devices/media-optical.png win-dist/share/icons/Adwaita/256x256/devices +# $(MKDIR_P) win-dist/share/icons/Adwaita/256x256/status +# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/256x256/status/dialog-information-symbolic.symbolic.png win-dist/share/icons/Adwaita/256x256/status + $(MKDIR_P) win-dist/share/icons/Adwaita/512x512/devices + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/512x512/devices/drive-harddisk.png win-dist/share/icons/Adwaita/512x512/devices + cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita/512x512/devices/media-optical.png win-dist/share/icons/Adwaita/512x512/devices # other cp -p "@WINDOWS_SYSROOT@"/bin/libgcc_s_*.dll win-dist/ @@ -246,7 +288,9 @@ cp -a win-dist $(WIN_ZIP_NAME) win-zip-dist-nocleanup: win-zip-dist-prepare - zip -K -9r $(WIN_ZIP_NAME).zip $(WIN_ZIP_NAME) + zip -9r $(WIN_ZIP_NAME).zip $(WIN_ZIP_NAME) +# Only when cross-compiling: +# zip -K -9r $(WIN_ZIP_NAME).zip $(WIN_ZIP_NAME) win-zip-dist-cleanup: rm -rf $(WIN_ZIP_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/gsmartcontrol-1.1.3/NEWS new/gsmartcontrol-1.1.4/NEWS --- old/gsmartcontrol-1.1.3/NEWS 2017-11-12 10:54:51.000000000 +0100 +++ new/gsmartcontrol-1.1.4/NEWS 2022-02-04 10:33:00.000000000 +0100 @@ -1,3 +1,23 @@ +Version 1.1.4, released on 2022-02-04 + Fixed a crash when trying to render main window icons which have incomplete + data; this fixes a rare crash when scanning devices (#13). + Fixed rendering compatibility issues with newer GTK3 versions. + Fixed build system conflict with C++20 version header (#14). + Fixed "Running command ..." dialog floating above windows of other + applications (#17). + Fixed a crash when system locale is set to invalid locale. + Support Finnish decimal separator (backported from the Debian package) + (#23). + Set LC_NUMERIC=C for smartctl process to avoid locale-dependent number + formatting (#23). + Fixed printing all GTK messages as warnings; the messages are sorted by + severity now. + Add current time to default filename in Save Output dialog. + Support macos stat command in file2csource.sh. + Fixed a few typos (backported from the Debian package). + Windows port now uses Adwaita theme due to issues with win32 theme. + Windows port is dpi-aware now. + Version 1.1.3, released on 2017-11-12 Fixed gsmartcontrol-root not launching if GDK_* variables are not set. 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/gsmartcontrol-1.1.3/README.txt new/gsmartcontrol-1.1.4/README.txt --- old/gsmartcontrol-1.1.3/README.txt 2017-09-25 16:13:05.000000000 +0200 +++ new/gsmartcontrol-1.1.4/README.txt 2022-02-02 10:55:07.000000000 +0100 @@ -25,7 +25,7 @@ "Add Device..." functionality or --add-device command-line option. See https://www.smartmontools.org/wiki/Supported_RAID-Controllers . -https://gsmartcontrol.sourceforge.io/ +https://gsmartcontrol.shaduri.dev 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/gsmartcontrol-1.1.3/ar-lib new/gsmartcontrol-1.1.4/ar-lib --- old/gsmartcontrol-1.1.3/ar-lib 2017-11-12 10:52:16.000000000 +0100 +++ new/gsmartcontrol-1.1.4/ar-lib 2022-02-04 10:57:12.000000000 +0100 @@ -4,7 +4,7 @@ me=ar-lib scriptversion=2012-03-01.08; # UTC -# Copyright (C) 2010-2013 Free Software Foundation, Inc. +# Copyright (C) 2010-2017 Free Software Foundation, Inc. # Written by Peter Rosin <p...@lysator.liu.se>. # # This program is free software; you can redistribute it and/or modify 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/gsmartcontrol-1.1.3/compile new/gsmartcontrol-1.1.4/compile --- old/gsmartcontrol-1.1.3/compile 1970-01-01 01:00:00.000000000 +0100 +++ new/gsmartcontrol-1.1.4/compile 2022-02-04 10:57:12.000000000 +0100 @@ -0,0 +1,348 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2016-01-11.22; # UTC + +# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Written by Tom Tromey <tro...@cygnus.com>. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to <bug-autom...@gnu.org> or send patches to +# <automake-patc...@gnu.org>. + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to <bug-autom...@gnu.org>. +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: 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/gsmartcontrol-1.1.3/configure.ac new/gsmartcontrol-1.1.4/configure.ac --- old/gsmartcontrol-1.1.3/configure.ac 2017-11-12 10:50:59.000000000 +0100 +++ new/gsmartcontrol-1.1.4/configure.ac 2022-02-02 10:49:21.000000000 +0100 @@ -1,5 +1,5 @@ -AC_INIT([GSmartControl],[1.1.3],[],[gsmartcontrol]) +AC_INIT([GSmartControl],[1.1.4],[],[gsmartcontrol]) AC_CONFIG_SRCDIR([configure.ac]) AC_CONFIG_HEADERS([config.h]) @@ -474,11 +474,7 @@ # ------------------------------------------------------------------------------------- -AC_CONFIG_FILES([ data/gsmartcontrol.desktop data/gsmartcontrol.appdata.xml \ - data/nsis/distribution.txt data/nsis/gsmartcontrol.nsi \ - debian.dist/changelog \ - src/gsc_winres.rc src/gsmartcontrol.exe.manifest \ - gsmartcontrol.spec version compilation_flags ]) +AC_CONFIG_FILES([data/gsmartcontrol.desktop data/gsmartcontrol.appdata.xml data/nsis/distribution.txt data/nsis/gsmartcontrol.nsi debian.dist/changelog src/gsc_winres.rc src/gsmartcontrol.exe.manifest gsmartcontrol.spec version.txt compilation_flags]) AC_CONFIG_FILES([data/gsmartcontrol-root], [chmod +x data/gsmartcontrol-root]) @@ -486,11 +482,7 @@ # these are all the makefiles to generate -AC_CONFIG_FILES([Makefile src/Makefile src/applib/Makefile src/res/Makefile src/hz/Makefile \ - src/libdebug/Makefile src/rconfig/Makefile src/rmn/Makefile \ - data/Makefile data/16/Makefile data/22/Makefile data/24/Makefile data/32/Makefile \ - data/48/Makefile data/64/Makefile data/128/Makefile data/256/Makefile data/nsis/Makefile \ - debian.dist/Makefile]) +AC_CONFIG_FILES([Makefile src/Makefile src/applib/Makefile src/res/Makefile src/hz/Makefile src/libdebug/Makefile src/rconfig/Makefile src/rmn/Makefile data/Makefile data/16/Makefile data/22/Makefile data/24/Makefile data/32/Makefile data/48/Makefile data/64/Makefile data/128/Makefile data/256/Makefile data/nsis/Makefile debian.dist/Makefile]) AC_OUTPUT 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/gsmartcontrol-1.1.3/data/gsmartcontrol.appdata.xml.in new/gsmartcontrol-1.1.4/data/gsmartcontrol.appdata.xml.in --- old/gsmartcontrol-1.1.3/data/gsmartcontrol.appdata.xml.in 2017-08-18 11:32:42.000000000 +0200 +++ new/gsmartcontrol-1.1.4/data/gsmartcontrol.appdata.xml.in 2022-02-02 10:56:59.000000000 +0100 @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Copyright 2017 GSmartControl developers --> +<!-- Copyright 2017 - 2022 GSmartControl developers --> <component type="desktop"> <id>gsmartcontrol</id> <metadata_license>CC0-1.0</metadata_license> @@ -16,7 +16,7 @@ </p> </description> <launchable type="desktop-id">gsmartcontrol.desktop</launchable> - <url type="homepage">https://gsmartcontrol.sourceforge.io</url> + <url type="homepage">https://gsmartcontrol.shaduri.dev</url> <screenshots> <screenshot type="default"> <caption>Main window</caption> 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/gsmartcontrol-1.1.3/data/nsis/distribution.txt.in new/gsmartcontrol-1.1.4/data/nsis/distribution.txt.in --- old/gsmartcontrol-1.1.3/data/nsis/distribution.txt.in 2017-11-11 20:03:37.000000000 +0100 +++ new/gsmartcontrol-1.1.4/data/nsis/distribution.txt.in 2022-02-02 10:55:07.000000000 +0100 @@ -4,7 +4,7 @@ The latest version of this distribution, as well as the source code of GSmartControl, can be found at -https://gsmartcontrol.sourceforge.io +https://gsmartcontrol.shaduri.dev and https://sourceforge.net/projects/gsmartcontrol/files/ 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/gsmartcontrol-1.1.3/data/nsis/gsmartcontrol.nsi.in new/gsmartcontrol-1.1.4/data/nsis/gsmartcontrol.nsi.in --- old/gsmartcontrol-1.1.3/data/nsis/gsmartcontrol.nsi.in 2017-08-18 11:32:38.000000000 +0200 +++ new/gsmartcontrol-1.1.4/data/nsis/gsmartcontrol.nsi.in 2022-02-04 10:40:44.000000000 +0100 @@ -4,11 +4,13 @@ ; Compatible with NSIS Unicode 2.45. ; Public Domain +Unicode True + !define PRODUCT_VERSION "@VERSION@" !define PRODUCT_NAME "GSmartControl" !define PRODUCT_NAME_SMALL "gsmartcontrol" !define PRODUCT_PUBLISHER "Alexander Shaduri" -!define PRODUCT_WEB_SITE "https://gsmartcontrol.sourceforge.io" +!define PRODUCT_WEB_SITE "https://gsmartcontrol.shaduri.dev" ;!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\AppMainExe.exe" !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" @@ -134,7 +136,6 @@ SetOverwrite On File *.exe File *.dll - File gsmartcontrol.exe.manifest File gsmartcontrol.ico File icon_*.png File drivedb.h @@ -145,6 +146,7 @@ ; GTK and stuff File /r etc File /r share + File /r lib ; Add Shortcuts (this inherits the exe's run permissions) CreateShortCut "$SMPROGRAMS\GSmartControl.lnk" "$INSTDIR\gsmartcontrol.exe" "" \ @@ -226,7 +228,6 @@ Delete "$INSTDIR\*.exe" Delete "$INSTDIR\*.dll" - Delete "$INSTDIR\gsmartcontrol.exe.manifest" Delete "$INSTDIR\gsmartcontrol.ico" Delete "$INSTDIR\icon_*.png" @@ -239,6 +240,7 @@ ; GTK and stuff RMDir /r "$INSTDIR\etc" RMDir /r "$INSTDIR\share" + RMDir /r "$INSTDIR\lib" ; clean up generated stuff Delete "$INSTDIR\*stdout.txt" 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/gsmartcontrol-1.1.3/debian.dist/changelog new/gsmartcontrol-1.1.4/debian.dist/changelog --- old/gsmartcontrol-1.1.3/debian.dist/changelog 2017-11-12 10:52:29.000000000 +0100 +++ new/gsmartcontrol-1.1.4/debian.dist/changelog 2022-02-04 10:57:27.000000000 +0100 @@ -1,4 +1,4 @@ -gsmartcontrol (1.1.3+nmu1) unstable; urgency=low +gsmartcontrol (1.1.4+nmu1) unstable; urgency=low * Permanently Initial Release. 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/gsmartcontrol-1.1.3/debian.dist/compat new/gsmartcontrol-1.1.4/debian.dist/compat --- old/gsmartcontrol-1.1.3/debian.dist/compat 2014-04-16 22:30:57.000000000 +0200 +++ new/gsmartcontrol-1.1.4/debian.dist/compat 2022-02-03 08:27:53.000000000 +0100 @@ -1 +1 @@ -5 +9 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/gsmartcontrol-1.1.3/debian.dist/control new/gsmartcontrol-1.1.4/debian.dist/control --- old/gsmartcontrol-1.1.3/debian.dist/control 2017-09-05 18:08:23.000000000 +0200 +++ new/gsmartcontrol-1.1.4/debian.dist/control 2022-02-02 10:55:07.000000000 +0100 @@ -1,7 +1,7 @@ Source: gsmartcontrol Section: utils Priority: extra -Homepage: https://gsmartcontrol.sourceforge.io/ +Homepage: https://gsmartcontrol.shaduri.dev Maintainer: Alexander Shaduri <ashaduriremovet...@gmail.com> Build-Depends: debhelper (>= 5), autotools-dev, libpcre3-dev, libgtkmm-3.0-dev (>= 3.4.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/gsmartcontrol-1.1.3/debian.dist/copyright new/gsmartcontrol-1.1.4/debian.dist/copyright --- old/gsmartcontrol-1.1.3/debian.dist/copyright 2017-08-26 19:08:52.000000000 +0200 +++ new/gsmartcontrol-1.1.4/debian.dist/copyright 2022-02-02 10:57:48.000000000 +0100 @@ -1,11 +1,11 @@ This package was debianized by Alexander Shaduri <ashaduri 'at' gmail.com> on Sat, 15 Nov 2008 00:12:04 +0400. -It was downloaded from <https://gsmartcontrol.sourceforge.io/> +It was downloaded from <https://gsmartcontrol.shaduri.dev> Copyright: - Copyright (C) 2008 - 2017 Alexander Shaduri <ashaduri 'at' gmail.com> + Copyright (C) 2008 - 2022 Alexander Shaduri <ashaduri 'at' gmail.com> License: @@ -27,6 +27,6 @@ Public Licenses can be found in `/usr/share/common-licenses/GPL-2' and `/usr/share/common-licenses/GPL-3'. -The Debian packaging is (C) 2008 - 2017 Alexander Shaduri <ashaduri 'at' gmail.com> and +The Debian packaging is (C) 2008 - 2022 Alexander Shaduri <ashaduri 'at' gmail.com> and is licensed under the GPLv2 and GPLv3, see above. 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/gsmartcontrol-1.1.3/file2csource.sh new/gsmartcontrol-1.1.4/file2csource.sh --- old/gsmartcontrol-1.1.3/file2csource.sh 2014-04-16 22:30:57.000000000 +0200 +++ new/gsmartcontrol-1.1.4/file2csource.sh 2021-12-01 11:51:10.000000000 +0100 @@ -24,7 +24,12 @@ in_file="$1"; out_file="$2"; sym_name="$3"; -size=`stat -c "%s" "$in_file"` +size=""; +if [[ $OSTYPE == 'darwin'* ]]; then + size=`stat "-f%z" "$in_file"` +else + size=`stat -c "%s" "$in_file"` +fi # header. extern means "global" in this context (needed because const 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/gsmartcontrol-1.1.3/gsmartcontrol.spec new/gsmartcontrol-1.1.4/gsmartcontrol.spec --- old/gsmartcontrol-1.1.3/gsmartcontrol.spec 2017-11-12 10:52:29.000000000 +0100 +++ new/gsmartcontrol-1.1.4/gsmartcontrol.spec 2022-02-04 10:57:27.000000000 +0100 @@ -3,10 +3,10 @@ # Supported distributions: openSUSE, Fedora, CentOS, RHEL. Name: gsmartcontrol -Version: 1.1.3 +Version: 1.1.4 Release: 0 License: GPL-2.0 AND GPL-3.0 -Url: https://gsmartcontrol.sourceforge.io/ +Url: https://gsmartcontrol.shaduri.dev Vendor: Alexander Shaduri <ashaduri 'at' gmail.com> # Packager: Alexander Shaduri <ashaduri 'at' gmail.com> Source: http://sourceforge.net/projects/gsmartcontrol/files/%{version}/%{name}-%{version}.tar.bz2 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/gsmartcontrol-1.1.3/gsmartcontrol.spec.in new/gsmartcontrol-1.1.4/gsmartcontrol.spec.in --- old/gsmartcontrol-1.1.3/gsmartcontrol.spec.in 2017-09-05 18:09:49.000000000 +0200 +++ new/gsmartcontrol-1.1.4/gsmartcontrol.spec.in 2022-02-02 10:55:07.000000000 +0100 @@ -6,7 +6,7 @@ Version: @VERSION@ Release: 0 License: GPL-2.0 AND GPL-3.0 -Url: https://gsmartcontrol.sourceforge.io/ +Url: https://gsmartcontrol.shaduri.dev Vendor: Alexander Shaduri <ashaduri 'at' gmail.com> # Packager: Alexander Shaduri <ashaduri 'at' gmail.com> Source: http://sourceforge.net/projects/gsmartcontrol/files/%{version}/%{name}-%{version}.tar.bz2 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/gsmartcontrol-1.1.3/missing new/gsmartcontrol-1.1.4/missing --- old/gsmartcontrol-1.1.3/missing 2017-11-12 10:52:16.000000000 +0100 +++ new/gsmartcontrol-1.1.4/missing 2022-02-04 10:57:12.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2012-06-26.16; # UTC +scriptversion=2016-01-11.22; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2017 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -160,7 +160,7 @@ ;; autom4te*) echo "You might have modified some maintainer files that require" - echo "the 'automa4te' program to be rebuilt." + echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) @@ -210,6 +210,6 @@ # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: 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/gsmartcontrol-1.1.3/src/applib/cmdex.cpp new/gsmartcontrol-1.1.4/src/applib/cmdex.cpp --- old/gsmartcontrol-1.1.3/src/applib/cmdex.cpp 2017-09-01 15:06:03.000000000 +0200 +++ new/gsmartcontrol-1.1.4/src/applib/cmdex.cpp 2022-02-04 08:46:35.000000000 +0100 @@ -131,7 +131,7 @@ #endif hz::ScopedEnv lang_env("LANG", "C", change_lang); - + hz::ScopedEnv lc_numeric_env("LC_NUMERIC", "C", change_lang); debug_out_info("app", DBG_FUNC_MSG << "Executing \"" << cmd << "\".\n"); /* @@ -253,8 +253,13 @@ bool Cmdex::try_stop(hz::signal_t sig) { DBG_FUNCTION_ENTER_MSG; +#ifdef _WIN32 + if (!this->running_ || this->pid_ == 0) + return false; +#else if (!this->running_ || this->pid_ <= 0) return false; +#endif // other variants: SIGHUP(1) (terminal closed), SIGINT(2) (Ctrl-C), // SIGKILL(9) (kill). 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/gsmartcontrol-1.1.3/src/applib/cmdex_sync_gui.cpp new/gsmartcontrol-1.1.4/src/applib/cmdex_sync_gui.cpp --- old/gsmartcontrol-1.1.3/src/applib/cmdex_sync_gui.cpp 2017-05-17 15:43:00.000000000 +0200 +++ new/gsmartcontrol-1.1.4/src/applib/cmdex_sync_gui.cpp 2022-01-31 12:29:33.000000000 +0100 @@ -29,7 +29,7 @@ #define CMDEX_DIALOG_MESSAGE_TYPE Gtk::MESSAGE_OTHER -#define CMDEX_DIALOG_HINT_TYPE Gdk::WINDOW_TYPE_HINT_NOTIFICATION +#define CMDEX_DIALOG_HINT_TYPE Gdk::WINDOW_TYPE_HINT_DIALOG 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/gsmartcontrol-1.1.3/src/applib/smartctl_parser.cpp new/gsmartcontrol-1.1.4/src/applib/smartctl_parser.cpp --- old/gsmartcontrol-1.1.3/src/applib/smartctl_parser.cpp 2017-09-23 17:19:53.000000000 +0200 +++ new/gsmartcontrol-1.1.4/src/applib/smartctl_parser.cpp 2022-01-31 13:06:11.000000000 +0100 @@ -345,6 +345,7 @@ to_replace.push_back(","); to_replace.push_back("."); to_replace.push_back(std::string(1, 0xa0)); + to_replace.push_back(std::string(1, 0xc2)); #ifdef _WIN32 // if current locale is C, then probably we didn't change it at application 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/gsmartcontrol-1.1.3/src/applib/storage_detector_win32.cpp new/gsmartcontrol-1.1.4/src/applib/storage_detector_win32.cpp --- old/gsmartcontrol-1.1.3/src/applib/storage_detector_win32.cpp 2017-11-11 19:13:29.000000000 +0100 +++ new/gsmartcontrol-1.1.4/src/applib/storage_detector_win32.cpp 2022-02-03 13:59:29.000000000 +0100 @@ -110,7 +110,7 @@ for (char c = 'A'; c <= 'Z'; ++c) { if (drives[c - 'A']) { // drive is present debug_out_dump("app", "Windows drive found: " << c << ".\n"); - if (GetDriveType((c + string(":\\")).c_str()) == DRIVE_FIXED) { + if (GetDriveType((c + std::string(":\\")).c_str()) == DRIVE_FIXED) { debug_out_dump("app", "Windows drive " << c << " is fixed.\n"); good_drives.push_back(c); } @@ -120,7 +120,7 @@ // Try to open each drive, check its disk extents for (std::size_t i = 0; i < good_drives.size(); ++i) { char drive = good_drives[i]; - string drive_str = string("\\\\.\\") + drive + ":"; + std::string drive_str = std::string("\\\\.\\") + drive + ":"; HANDLE h = CreateFileA( drive_str.c_str(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_FLAG_NO_BUFFERING | FILE_FLAG_RANDOM_ACCESS, NULL); 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/gsmartcontrol-1.1.3/src/applib/storage_device.cpp new/gsmartcontrol-1.1.4/src/applib/storage_device.cpp --- old/gsmartcontrol-1.1.3/src/applib/storage_device.cpp 2017-11-11 20:08:57.000000000 +0100 +++ new/gsmartcontrol-1.1.4/src/applib/storage_device.cpp 2022-01-13 11:04:47.000000000 +0100 @@ -815,7 +815,7 @@ { std::string model = this->get_model_name(); // may be empty std::string serial = this->get_serial_number(); - std::string date = hz::format_date("%Y-%m-%d", false); + std::string date = hz::format_date("%Y-%m-%d_%H%M", true); std::string filename_format; rconfig::get_data("gui/smartctl_output_filename_format", filename_format); 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/gsmartcontrol-1.1.3/src/applib/storage_property.cpp new/gsmartcontrol-1.1.4/src/applib/storage_property.cpp --- old/gsmartcontrol-1.1.3/src/applib/storage_property.cpp 2017-09-15 13:18:41.000000000 +0200 +++ new/gsmartcontrol-1.1.4/src/applib/storage_property.cpp 2022-01-13 11:04:08.000000000 +0100 @@ -43,7 +43,12 @@ // If it's fully a number, format it with commas if (hz::number_to_string(raw_value_int) == raw_value) { std::stringstream ss; - ss.imbue(std::locale("")); + try { + ss.imbue(std::locale("")); + } + catch (const std::runtime_error& e) { + // something is wrong with system locale, can't do anything here. + } ss << std::fixed << raw_value_int; return ss.str(); } @@ -71,7 +76,12 @@ // If it's fully a number, format it with commas if (hz::number_to_string(value_int) == value) { std::stringstream ss; - ss.imbue(std::locale("")); + try { + ss.imbue(std::locale("")); + } + catch (const std::runtime_error& e) { + // something is wrong with system locale, can't do anything here. + } ss << std::fixed << value_int; return ss.str(); } @@ -153,7 +163,12 @@ std::string StorageErrorBlock::format_lifetime_hours() const { std::stringstream ss; - ss.imbue(std::locale("")); + try { + ss.imbue(std::locale("")); + } + catch (const std::runtime_error& e) { + // something is wrong with system locale, can't do anything here. + } ss << std::fixed << lifetime_hours; return ss.str(); } @@ -173,7 +188,12 @@ std::string StorageSelftestEntry::format_lifetime_hours() const { std::stringstream ss; - ss.imbue(std::locale("")); + try { + ss.imbue(std::locale("")); + } + catch (const std::runtime_error& e) { + // something is wrong with system locale, can't do anything here. + } ss << std::fixed << lifetime_hours; return ss.str(); } 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/gsmartcontrol-1.1.3/src/applib/storage_property_descr.cpp new/gsmartcontrol-1.1.4/src/applib/storage_property_descr.cpp --- old/gsmartcontrol-1.1.3/src/applib/storage_property_descr.cpp 2017-09-07 15:00:22.000000000 +0200 +++ new/gsmartcontrol-1.1.4/src/applib/storage_property_descr.cpp 2022-02-01 10:58:57.000000000 +0100 @@ -1677,7 +1677,7 @@ } else if (name_match(p, "smart_enabled") && !p.value_bool) { w = StorageProperty::warning_notice; - reason = "SMART is disabled. You shoud enable it to read any SMART information from this drive. " + reason = "SMART is disabled. You should enable it to read any SMART information from this drive. " "Additionally, some drives do not log useful data with SMART disabled, so it's advisable to keep it always enabled."; } else if (name_match(p, "info_warning")) { 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/gsmartcontrol-1.1.3/src/gsc_about_dialog.cpp new/gsmartcontrol-1.1.4/src/gsc_about_dialog.cpp --- old/gsmartcontrol-1.1.3/src/gsc_about_dialog.cpp 2017-10-03 12:47:35.000000000 +0200 +++ new/gsmartcontrol-1.1.4/src/gsc_about_dialog.cpp 2022-02-02 10:56:59.000000000 +0100 @@ -40,7 +40,7 @@ set_version(VERSION); // set these properties here (after setting hooks) to make the links work. - set_website("https://gsmartcontrol.sourceforge.io/"); + set_website("https://gsmartcontrol.shaduri.dev"); set_license(LicenseTextResData().get_string()); @@ -50,7 +50,7 @@ // #endif // spammers go away - set_copyright("Copyright (C) 2008 - 2017 Alexander Shaduri " "<ashaduri" "" "@" "" "" "gmail.com>"); + set_copyright("Copyright (C) 2008 - 2022 Alexander Shaduri " "<ashaduri" "" "@" "" "" "gmail.com>"); std::string authors_str = AuthorsTextResData().get_string(); 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/gsmartcontrol-1.1.3/src/gsc_info_window.cpp new/gsmartcontrol-1.1.4/src/gsc_info_window.cpp --- old/gsmartcontrol-1.1.3/src/gsc_info_window.cpp 2017-11-11 19:01:01.000000000 +0100 +++ new/gsmartcontrol-1.1.4/src/gsc_info_window.cpp 2022-02-01 11:07:31.000000000 +0100 @@ -127,10 +127,12 @@ crt->property_cell_background().reset_value(); crt->property_foreground().reset_value(); } - if (p->value_statistic.is_header) { - crt->property_weight() = Pango::WEIGHT_BOLD; - } else { - crt->property_weight().reset_value(); + if (p->value_type == StorageProperty::value_type_statistic) { + if (p->value_statistic.is_header) { + crt->property_weight() = Pango::WEIGHT_BOLD; + } else { + crt->property_weight().reset_value(); + } } } } @@ -1128,8 +1130,12 @@ if (buffer) { buffer->set_text("\nComplete error log:\n\n" + iter->value_string); - // set marks so we can scroll to them + // Make the text monospace (the 3.16+ glade property does not work anymore for some reason). + Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag(); + tag->property_family() = "Monospace"; + buffer->apply_tag(tag, buffer->begin(), buffer->end()); + // Set marks so we can scroll to them if (!error_log_row_selected_conn.connected()) { // avoid double-connect error_log_row_selected_conn = treeview->get_selection()->signal_changed().connect( sigc::bind(sigc::bind(sigc::ptr_fun(on_error_log_treeview_row_selected), col_mark_name), this)); @@ -1240,6 +1246,11 @@ if (iter->generic_name == "scttemp_log") { Glib::RefPtr<Gtk::TextBuffer> buffer = textview->get_buffer(); buffer->set_text("\nComplete SCT temperature log:\n\n" + iter->value_string); + + // Make the text monospace (the 3.16+ glade property does not work anymore for some reason). + Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag(); + tag->property_family() = "Monospace"; + buffer->apply_tag(tag, buffer->begin(), buffer->end()); } } @@ -1385,6 +1396,11 @@ if (iter->generic_name == "scterc_log") { Glib::RefPtr<Gtk::TextBuffer> buffer = textview->get_buffer(); buffer->set_text("\nComplete SCT Error Recovery Control settings:\n\n" + iter->value_string); + + // Make the text monospace (the 3.16+ glade property does not work anymore for some reason). + Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag(); + tag->property_family() = "Monospace"; + buffer->apply_tag(tag, buffer->begin(), buffer->end()); } } @@ -1418,6 +1434,11 @@ if (iter->generic_name == "selective_selftest_log") { Glib::RefPtr<Gtk::TextBuffer> buffer = textview->get_buffer(); buffer->set_text("\nComplete selective self-test log:\n\n" + iter->value_string); + + // Make the text monospace (the 3.16+ glade property does not work anymore for some reason). + Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag(); + tag->property_family() = "Monospace"; + buffer->apply_tag(tag, buffer->begin(), buffer->end()); } } @@ -1451,6 +1472,11 @@ if (iter->generic_name == "sataphy_log") { Glib::RefPtr<Gtk::TextBuffer> buffer = textview->get_buffer(); buffer->set_text("\nComplete phy log:\n\n" + iter->value_string); + + // Make the text monospace (the 3.16+ glade property does not work anymore for some reason). + Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag(); + tag->property_family() = "Monospace"; + buffer->apply_tag(tag, buffer->begin(), buffer->end()); } } @@ -1484,6 +1510,11 @@ if (iter->generic_name == "directory_log") { Glib::RefPtr<Gtk::TextBuffer> buffer = textview->get_buffer(); buffer->set_text("\nComplete directory log:\n\n" + iter->value_string); + + // Make the text monospace (the 3.16+ glade property does not work anymore for some reason). + Glib::RefPtr<Gtk::TextTag> tag = buffer->create_tag(); + tag->property_family() = "Monospace"; + buffer->apply_tag(tag, buffer->begin(), buffer->end()); } } 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/gsmartcontrol-1.1.3/src/gsc_init.cpp new/gsmartcontrol-1.1.4/src/gsc_init.cpp --- old/gsmartcontrol-1.1.3/src/gsc_init.cpp 2017-11-12 10:45:46.000000000 +0100 +++ new/gsmartcontrol-1.1.4/src/gsc_init.cpp 2022-02-04 09:01:22.000000000 +0100 @@ -192,7 +192,26 @@ const gchar* message, gpointer user_data) { // log_domain is already printed as part of message. - debug_print_error("gtk", "%s\n", message); + switch(log_level) { + case G_LOG_FLAG_RECURSION: + case G_LOG_FLAG_FATAL: + case G_LOG_LEVEL_ERROR: // fatal + case G_LOG_LEVEL_CRITICAL: + debug_print_error("gtk", "%s\n", message); + break; + case G_LOG_LEVEL_WARNING: + debug_print_warn("gtk", "%s\n", message); + break; + case G_LOG_LEVEL_MESSAGE: + case G_LOG_LEVEL_INFO: + debug_print_info("gtk", "%s\n", message); + break; + case G_LOG_LEVEL_DEBUG: + debug_print_dump("gtk", "%s\n", message); + break; + case G_LOG_LEVEL_MASK: + break; + } } } @@ -307,7 +326,7 @@ std::string warningtext = std::string("\nWarning: GSmartControl"); warningtext += " comes with ABSOLUTELY NO WARRANTY.\n"; warningtext += "See LICENSE_gsmartcontrol.txt file for details.\n"; - warningtext += "\nCopyright (C) 2008 - 2017 Alexander Shaduri <ashaduri" "" "@" "" "" "gmail.com>\n\n"; + warningtext += "\nCopyright (C) 2008 - 2022 Alexander Shaduri <ashaduri" "" "@" "" "" "gmail.com>\n\n"; std::fprintf(stdout, "%s%s", versiontext.c_str(), warningtext.c_str()); } @@ -323,8 +342,11 @@ // Glib::thread_init(); #ifdef _WIN32 - // Disable client-side decorations (enable native windows decorations) under Windows. - hz::env_set_value("GTK_CSD", "0"); + std::string csd_value; + if (!hz::env_get_value("GTK_CSD", csd_value)) { // if not set + // Disable client-side decorations (enable native windows decorations) under Windows. + hz::env_set_value("GTK_CSD", "0"); + } #endif // Glib needs the C locale set to system locale for command line args. 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/gsmartcontrol-1.1.3/src/gsc_main_window.cpp new/gsmartcontrol-1.1.4/src/gsc_main_window.cpp --- old/gsmartcontrol-1.1.3/src/gsc_main_window.cpp 2017-11-11 19:09:47.000000000 +0100 +++ new/gsmartcontrol-1.1.4/src/gsc_main_window.cpp 2022-02-01 10:59:05.000000000 +0100 @@ -1203,6 +1203,10 @@ GscInfoWindow* GscMainWindow::show_device_info_window(StorageDeviceRefPtr drive) { + if (!drive) { + return 0; + } + // if a test is being run on it, disallow. if (drive->get_test_is_active()) { gui_show_warn_dialog("Please wait until the test is finished on this drive.", 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/gsmartcontrol-1.1.3/src/gsc_main_window_iconview.h new/gsmartcontrol-1.1.4/src/gsc_main_window_iconview.h --- old/gsmartcontrol-1.1.3/src/gsc_main_window_iconview.h 2017-11-11 19:02:24.000000000 +0100 +++ new/gsmartcontrol-1.1.4/src/gsc_main_window_iconview.h 2022-02-01 10:59:05.000000000 +0100 @@ -69,6 +69,8 @@ columns.add(col_drive_ptr); + columns.add(col_populated); + // create a Tree Model ref_list_model = Gtk::ListStore::create(columns); // ref_list_model->set_sort_column(col_name, Gtk::SORT_ASCENDING); @@ -207,7 +209,14 @@ void on_cell_data_render(const Gtk::TreeModel::const_iterator& iter) { Gtk::TreeRow row = *iter; + if (!row[col_populated]) { // protect against rendering incomplete model entry + return; + } + Glib::RefPtr<Gdk::Pixbuf> pixbuf = row[col_pixbuf]; + if (!pixbuf) { + return; + } // Gtkmm property_surface() doesn't work, so use plain C. // https://bugzilla.gnome.org/show_bug.cgi?id=788513 @@ -241,6 +250,8 @@ this->decorate_entry(row); + row[col_populated] = true; // triggers rendering + drive->signal_changed.connect(sigc::mem_fun(this, &GscMainWindowIconView::on_drive_changed)); if (scroll_to_it) { @@ -279,6 +290,9 @@ void decorate_entry(Gtk::TreeModel::Row& row) { StorageDeviceRefPtr drive = row[col_drive_ptr]; + if (!drive) { + return; + } // it needs this space to be symmetric (why?); std::string name; // = "<big>" + drive->get_device_with_type() + " </big>\n"; @@ -473,8 +487,11 @@ } else { // enable drives menu, set proper smart toggles Gtk::TreePath model_path = *(this->get_selected_items().begin()); Gtk::TreeModel::Row row = *(ref_list_model->get_iter(model_path)); - StorageDeviceRefPtr drive = row[col_drive_ptr]; + if (!row[col_populated]) { // protect against using incomplete model entry + return; + } + StorageDeviceRefPtr drive = row[col_drive_ptr]; main_window->set_drive_menu_status(drive); } } @@ -488,8 +505,11 @@ return; Gtk::TreeModel::Row row = *(ref_list_model->get_iter(model_path)); - StorageDeviceRefPtr drive = row[col_drive_ptr]; + if (!row[col_populated]) { // protect against using incomplete model entry + return; + } + StorageDeviceRefPtr drive = row[col_drive_ptr]; main_window->show_device_info_window(drive); } @@ -536,9 +556,11 @@ this->unselect_all(); // unselect on empty area right-click } - Gtk::Menu* menu = main_window->get_popup_menu(drive); - if (menu) - menu->popup(event_button->button, event_button->time); + if (drive) { + Gtk::Menu* menu = main_window->get_popup_menu(drive); + if (menu) + menu->popup(event_button->button, event_button->time); + } return true; // stop handling } @@ -568,6 +590,7 @@ Gtk::TreeModelColumn<Glib::ustring> col_description; ///< Model column Gtk::TreeModelColumn<Glib::RefPtr<Gdk::Pixbuf> > col_pixbuf; ///< Model column Gtk::TreeModelColumn<StorageDeviceRefPtr> col_drive_ptr; ///< Model column + Gtk::TreeModelColumn<bool> col_populated; ///< Model column, indicates whether the model entry has been fully populated. Glib::RefPtr<Gtk::ListStore> ref_list_model; ///< The icon view model unsigned int num_icons; ///< Track the number of icons, because liststore makes it difficult to count them. 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/gsmartcontrol-1.1.3/src/gsc_winres.rc.in new/gsmartcontrol-1.1.4/src/gsc_winres.rc.in --- old/gsmartcontrol-1.1.3/src/gsc_winres.rc.in 2017-05-11 10:41:31.000000000 +0200 +++ new/gsmartcontrol-1.1.4/src/gsc_winres.rc.in 2022-02-04 08:53:41.000000000 +0100 @@ -1,6 +1,9 @@ gsmartcontrol ICON "gsmartcontrol.ico" +// Embed manifest in exe +1 24 "gsmartcontrol.exe.manifest" + 1 VERSIONINFO FILEVERSION 0,0,0,0 PRODUCTVERSION 0,0,0,0 @@ -14,7 +17,7 @@ VALUE "FileDescription", "GSmartControl - Hard disk drive and SSD health inspection tool" VALUE "FileVersion", "@VERSION@" VALUE "InternalName", "gsmartcontrol.exe" - VALUE "LegalCopyright", "Copyright (C) 2008 - 2017 Alexander Shaduri" + VALUE "LegalCopyright", "Copyright (C) 2008 - 2022 Alexander Shaduri" VALUE "OriginalFilename", "gsmartcontrol.exe" VALUE "ProductName", "GSmartControl" VALUE "ProductVersion", "@VERSION@" 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/gsmartcontrol-1.1.3/src/gsmartcontrol.exe.manifest.in new/gsmartcontrol-1.1.4/src/gsmartcontrol.exe.manifest.in --- old/gsmartcontrol-1.1.3/src/gsmartcontrol.exe.manifest.in 2017-06-15 14:33:11.000000000 +0200 +++ new/gsmartcontrol-1.1.4/src/gsmartcontrol.exe.manifest.in 2022-02-04 09:07:22.000000000 +0100 @@ -18,10 +18,12 @@ </ms_asmv2:security> </ms_asmv2:trustInfo> - <!-- GTK3 applications aren't quite dpi-aware --> + <!-- GTK3 applications aren't quite dpi-aware with win32 theme, among other + visual issues. + On the other hand, HiDPI Adwaita works (it also looks slightly like win11 theme), so we prefer that. --> <asmv3:application> <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings"> - <dpiAware>false</dpiAware> + <dpiAware>true</dpiAware> </asmv3:windowsSettings> </asmv3:application> 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/gsmartcontrol-1.1.3/src/hz/process_signal.h new/gsmartcontrol-1.1.4/src/hz/process_signal.h --- old/gsmartcontrol-1.1.3/src/hz/process_signal.h 2014-04-16 22:30:56.000000000 +0200 +++ new/gsmartcontrol-1.1.4/src/hz/process_signal.h 2022-02-04 08:39:22.000000000 +0100 @@ -195,7 +195,7 @@ inline int process_signal_send(process_id_t process_handle, signal_t sig) { - if (process_handle <= 0) { + if (process_handle == 0) { errno = ESRCH; // The pid or process group does not exist. return -1; } 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/gsmartcontrol-1.1.3/src/res/gsc_preferences_window.ui new/gsmartcontrol-1.1.4/src/res/gsc_preferences_window.ui --- old/gsmartcontrol-1.1.3/src/res/gsc_preferences_window.ui 2017-09-04 18:41:10.000000000 +0200 +++ new/gsmartcontrol-1.1.4/src/res/gsc_preferences_window.ui 2022-01-13 10:47:27.000000000 +0100 @@ -225,7 +225,7 @@ <object class="GtkEntry" id="smartctl_options_entry"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip_text" translatable="yes">Global parameters for smartctl. These parameters will be used every time the progam invokes smartctl. Must be shell-escaped.</property> + <property name="tooltip_text" translatable="yes">Global parameters for smartctl. These parameters will be used every time the program invokes smartctl. Must be shell-escaped.</property> <property name="activates_default">True</property> <property name="primary_icon_activatable">False</property> <property name="secondary_icon_activatable">False</property> @@ -239,7 +239,7 @@ <object class="GtkLabel" id="label8"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="tooltip_text" translatable="yes">Global parameters for smartctl. These parameters will be used every time the progam invokes smartctl. Must be shell-escaped.</property> + <property name="tooltip_text" translatable="yes">Global parameters for smartctl. These parameters will be used every time the program invokes smartctl. Must be shell-escaped.</property> <property name="halign">start</property> <property name="label" translatable="yes">Smartctl parameters:</property> <property name="use_underline">True</property> 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/gsmartcontrol-1.1.3/src/res/gsc_preferences_window.ui.cpp new/gsmartcontrol-1.1.4/src/res/gsc_preferences_window.ui.cpp --- old/gsmartcontrol-1.1.3/src/res/gsc_preferences_window.ui.cpp 2017-11-12 10:52:42.000000000 +0100 +++ new/gsmartcontrol-1.1.4/src/res/gsc_preferences_window.ui.cpp 2022-02-04 10:57:41.000000000 +0100 @@ -15594,6 +15594,7 @@ 0x72, 0x6F, 0x67, +0x72, 0x61, 0x6D, 0x20, @@ -16804,6 +16805,7 @@ 0x72, 0x6F, 0x67, +0x72, 0x61, 0x6D, 0x20, @@ -51922,6 +51924,6 @@ 0x0 }; -extern const unsigned int gsc_preferences_window_ui_size = 51917; +extern const unsigned int gsc_preferences_window_ui_size = 51919; 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/gsmartcontrol-1.1.3/version.in new/gsmartcontrol-1.1.4/version.in --- old/gsmartcontrol-1.1.3/version.in 2014-04-16 22:30:57.000000000 +0200 +++ new/gsmartcontrol-1.1.4/version.in 1970-01-01 01:00:00.000000000 +0100 @@ -1 +0,0 @@ -@VERSION@ \ No newline at end of file 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/gsmartcontrol-1.1.3/version.txt.in new/gsmartcontrol-1.1.4/version.txt.in --- old/gsmartcontrol-1.1.3/version.txt.in 1970-01-01 01:00:00.000000000 +0100 +++ new/gsmartcontrol-1.1.4/version.txt.in 2021-12-01 09:53:46.000000000 +0100 @@ -0,0 +1 @@ +@VERSION@ \ No newline at end of file