From 154b609576be2a95ce4dcc659a9e01ffed65b787 Mon Sep 17 00:00:00 2001 From: Alexander Shaduri Date: Fri, 19 May 2017 20:33:43 +0000 Subject: [PATCH] Removed logo from About dialog (it wasn't working). Changed back to Windows 2000 compatibility - apparently gtk3 in cross/mingw supports XP. Updated svn ignore flags for new autotools-generated files. Updated debian and spec files to reflect new gtk3 requirements. Enabled dpiAware flag for Windows - gtk3 should support it properly. Rewrote win32/win64 packaging to pick proper files (including gtk3). Removed nogtk distribution generation code (it doesn't make sense without gtk installer). Changed configure-dev to support msys- and cross-based mingw (win32 and win64). --- gsmartcontrol/.svnignore.txt | 2 + gsmartcontrol/.update-ignores | 1 + gsmartcontrol/Makefile.am | 114 ++++++--- gsmartcontrol/NEWS | 3 + gsmartcontrol/README.txt | 49 ++-- gsmartcontrol/TODO | 3 - .../autoconf.m4/app_use_system_extensions.m4 | 11 +- gsmartcontrol/autogen.sh | 2 +- gsmartcontrol/baqup | 19 -- gsmartcontrol/configure-dev | 75 +++--- gsmartcontrol/configure.ac | 60 ++--- gsmartcontrol/data/Makefile.am | 2 +- .../data/nsis/distribution-nogtk.txt.in | 29 --- gsmartcontrol/data/nsis/gsmartcontrol.nsi.in | 229 +----------------- gsmartcontrol/debian.dist/control | 4 +- gsmartcontrol/debian.dist/copyright | 4 +- gsmartcontrol/gsmartcontrol.spec.in | 72 +----- .../src/gsmartcontrol.exe.manifest.in | 5 +- gsmartcontrol/src/res/gsc_about_dialog.ui | 2 +- 19 files changed, 189 insertions(+), 497 deletions(-) create mode 100644 gsmartcontrol/.update-ignores delete mode 100755 gsmartcontrol/baqup delete mode 100644 gsmartcontrol/data/nsis/distribution-nogtk.txt.in diff --git a/gsmartcontrol/.svnignore.txt b/gsmartcontrol/.svnignore.txt index 4d2c657..6b40be3 100644 --- a/gsmartcontrol/.svnignore.txt +++ b/gsmartcontrol/.svnignore.txt @@ -8,6 +8,8 @@ config.guess config.sub aclocal.m4 config.h.in +compile +ar-lib missing install-sh *.glade.cpp diff --git a/gsmartcontrol/.update-ignores b/gsmartcontrol/.update-ignores new file mode 100644 index 0000000..a65051a --- /dev/null +++ b/gsmartcontrol/.update-ignores @@ -0,0 +1 @@ +svn propset svn:ignore -F .svnignore.txt . diff --git a/gsmartcontrol/Makefile.am b/gsmartcontrol/Makefile.am index d437fab..24656c2 100644 --- a/gsmartcontrol/Makefile.am +++ b/gsmartcontrol/Makefile.am @@ -43,38 +43,19 @@ EXTRA_DIST = COPYING INSTALL configure autogen.sh \ -# PCH support - -global_macros.h.gch: $(top_srcdir)/src/global_macros.h - $(CXX) $(CXXFLAGS) $(DEFS) -x "c++-header" $(top_srcdir)/src/global_macros.h -o global_macros.h.gch - -gch: global_macros.h.gch - -gch-clean: - rm -f global_macros.h.gch - - - # rpm support src-rpm: dist rpmbuild -ts $(distdir).tar.bz2 -# Don't use this - it does something weird, and gcc errors out with "long long long" errors, etc... -#rpm: dist -# rpmbuild -ta $(distdir).tar.bz2 - - - # NSIS installer support. -# Requires wine, installed NSIS, smartctl-nc.exe, smartctl.exe, update-smart-drivedb.exe. +# Requires installed NSIS, smartctl-nc.exe, smartctl.exe, update-smart-drivedb.exe. # Gtkmm dlls and pcre dlls are required if linking against them. # dos2unix on build machine. # Execute only with win32 build present. -WIN_ZIP_NAME = $(PACKAGE)-$(VERSION)-win32 -WIN_ZIP_NOGTK_NAME = $(PACKAGE)-$(VERSION)-win32-nogtk +WIN_ZIP_NAME = $(PACKAGE)-$(VERSION)-@WINDOWS_SUFFIX@ win-dist: win-dist-nocleanup win-dist-cleanup @@ -91,6 +72,52 @@ win-dist-clean: win-dist-cleanup win-dist-prepare-all: nsis-dist-prepare win-zip-dist-prepare +# All of GTK+ +GTK_BIN_FILES = gdk-pixbuf-query-loaders.exe \ + gspawn-win32-helper-console.exe \ + gspawn-win32-helper.exe \ + gtk-query-immodules-3.0.exe \ + gtk-update-icon-cache-3.0.exe \ + libatk-1.*.dll \ + libatkmm-1.*.dll \ + libbz2-*.dll \ + libcairo-*.dll \ + libcairomm-1*.dll \ + libepoxy-*.dll \ + libffi-*.dll \ + libexpat-*.dll \ + libfontconfig-*.dll \ + libfreetype-*.dll \ + libgdk-3*.dll \ + libgdk_pixbuf-2.*.dll \ + libgdkmm-3.*.dll \ + libgio-2.*.dll \ + libgiomm-2.*.dll \ + libglib-2.*.dll \ + libglibmm*2.*.dll \ + libgmodule-2.*.dll \ + libgobject-2.*.dll \ + libgraphite*.dll \ + libgthread-2.*.dll \ + libgtk-3*.dll \ + libgtkmm-3*.dll \ + libharfbuzz*.dll \ + libiconv*.dll \ + libintl*.dll \ + libjasper*.dll \ + libjpeg*.dll \ + liblzma*.dll \ + libpango*-1.*.dll \ + libpixman*.dll \ + libpng16-*.dll \ + libsigc-2.*.dll \ + libstdc++-*.dll \ + libtiff-*.dll \ + libwinpthread-*.dll \ + libxml2-*.dll \ + zlib1.dll + + # Don't strip smartctl (it will only change the header), and # don't strip update-smart-drivedb (it will break its CRC check). win-dist-prepare: all @@ -98,7 +125,7 @@ win-dist-prepare: all cp $(top_srcdir)/data/icon_*.png win-dist/ $(MKDIR_P) win-dist/doc - cp data/nsis/distribution*.txt win-dist/doc/ + cp data/nsis/distribution.txt win-dist/doc/ cp $(top_srcdir)/AUTHORS.txt $(top_srcdir)/LICENSE_* $(top_srcdir)/README.txt win-dist/doc/ cp $(top_srcdir)/NEWS win-dist/doc/NEWS.txt @@ -106,9 +133,27 @@ win-dist-prepare: all unix2dos win-dist/doc/*.txt - cp -p "@WINDOWS_BINDIR@"/smartctl-nc.exe win-dist/ - cp -p "@WINDOWS_BINDIR@"/smartctl.exe win-dist/ - cp -p "@WINDOWS_BINDIR@"/update-smart-drivedb.exe win-dist/ + cp -p "@WINDOWS_SYSROOT@"/bin/drivedb.h win-dist/ + cp -p "@WINDOWS_SYSROOT@"/bin/smartctl-nc.exe win-dist/ + cp -p "@WINDOWS_SYSROOT@"/bin/smartctl.exe win-dist/ + cp -p "@WINDOWS_SYSROOT@"/bin/update-smart-drivedb.exe win-dist/ + + for file in $(GTK_BIN_FILES); do for f in "@WINDOWS_SYSROOT@/bin/"$$file; do if test -f "$${f}"; then cp -p "$${f}" win-dist/; fi; done; done + + $(MKDIR_P) win-dist/etc + $(MKDIR_P) win-dist/etc/fonts + cp -p "@WINDOWS_SYSROOT@"/etc/fonts/fonts.conf win-dist/etc/fonts + cp -p -r "@WINDOWS_SYSROOT@"/etc/gtk-3.0 win-dist/etc + + $(MKDIR_P) win-dist/share + cp -p -r "@WINDOWS_SYSROOT@"/share/themes win-dist/share +# $(MKDIR_P) win-dist/share/icons +# cp -p "@WINDOWS_SYSROOT@"/share/icons/hicolor win-dist/share/icons +# cp -p "@WINDOWS_SYSROOT@"/share/icons/Adwaita win-dist/share/icons + +# other + cp -p "@WINDOWS_SYSROOT@"/bin/libgcc_s_*.dll win-dist/ + cp -p "@WINDOWS_SYSROOT@"/bin/libpcre-1.dll win-dist/ nsis-dist-prepare: win-dist-prepare @@ -116,39 +161,32 @@ nsis-dist-prepare: win-dist-prepare cp $(top_srcdir)/data/gsmartcontrol.ico nsis-dist/ cp data/nsis/*.nsi $(top_srcdir)/data/nsis/nsi_* nsis-dist/ unix2dos nsis-dist/*.nsi - cp "@WINDOWS_BINDIR@"/"@GTK_INSTALLER_NAME@".exe nsis-dist/ nsis-dist-nocleanup: nsis-dist-prepare cd nsis-dist && @NSIS_EXEC@ gsmartcontrol.nsi - mv nsis-dist/$(PACKAGE)-$(VERSION).exe . - cd nsis-dist && @NSIS_EXEC@ /DNO_GTK gsmartcontrol.nsi - mv nsis-dist/$(PACKAGE)-$(VERSION)-nogtk.exe . + mv nsis-dist/$(PACKAGE)-$(VERSION)-@WINDOWS_SUFFIX@.exe . nsis-dist-cleanup: rm -rf nsis-dist -nsis-dist: nsis-dist-nocleanup nsis-dist-cleanup +nsis-dist: nsis-dist-prepare nsis-dist-nocleanup nsis-dist-cleanup -win-zip-dist-prepare: +win-zip-dist-prepare: win-dist-prepare cp -a win-dist $(WIN_ZIP_NAME) - cp -a win-dist $(WIN_ZIP_NOGTK_NAME) - cp -a "@WINDOWS_BINDIR@"/"@GTK_INSTALLER_NAME@"/* $(WIN_ZIP_NAME)/ win-zip-dist-nocleanup: win-zip-dist-prepare - zip -K -9r $(WIN_ZIP_NAME).zip $(WIN_ZIP_NAME) -x $(WIN_ZIP_NAME)/doc/distribution-nogtk.txt - zip -K -9r $(WIN_ZIP_NOGTK_NAME).zip $(WIN_ZIP_NOGTK_NAME) -x $(WIN_ZIP_NOGTK_NAME)/doc/distribution.txt + zip -K -9r $(WIN_ZIP_NAME).zip $(WIN_ZIP_NAME) win-zip-dist-cleanup: rm -rf $(WIN_ZIP_NAME) - rm -rf $(WIN_ZIP_NOGTK_NAME) -win-zip-dist: win-zip-dist-nocleanup win-zip-dist-cleanup +win-zip-dist: win-zip-dist-prepare win-zip-dist-nocleanup win-zip-dist-cleanup -distclean-local: gch-clean win-dist-clean +distclean-local: win-dist-clean diff --git a/gsmartcontrol/NEWS b/gsmartcontrol/NEWS index a2b1e0a..e086657 100644 --- a/gsmartcontrol/NEWS +++ b/gsmartcontrol/NEWS @@ -1,4 +1,7 @@ +Version 1.0.0, released on xxxxxxx + Ported to GTK+ 3. + Version 0.9.0, released on 2017-05-11 Implemented (untested) support for Linux-based Areca controllers with enclosures. diff --git a/gsmartcontrol/README.txt b/gsmartcontrol/README.txt index 900f6b5..54e964d 100644 --- a/gsmartcontrol/README.txt +++ b/gsmartcontrol/README.txt @@ -97,32 +97,22 @@ You need to have the following software installed: * smartmontools - see http://smartmontools.sourceforge.net . -* GTK+, version 2.6 or higher - see http://www.gtk.org . +* GTK+, version 3.4 or higher - see http://www.gtk.org . -* Gtkmm, version 2.6 or higher - see http://www.gtkmm.org . - -* libglademm, version 2.4 or higher - see http://www.gtkmm.org . -Note: libglademm is not needed when using GTK+ / Gtkmm 2.12 or newer. - -Note that having GTK+ 2.12 and Gtkmm 2.12 is HIGHLY recommended. While earlier -versions may work, they may produce suboptimal results and buggy behavior. +* Gtkmm, version 3.4 or higher - see http://www.gtkmm.org . Most of these packages are probably already provided by your distribution. Here are the packages you need to have to build GSmartControl on some Linux distributions: openSUSE, SLES, SLED: -gcc-c++, pcre-devel, gtkmm2-devel, (possibly) libglademm-devel. +gcc-c++, pcre-devel, gtkmm3-devel. Fedora, CentOS, RHEL: -gcc-c++, pcre-devel, gtkmm24-devel, (possibly) libglademm24-devel. - -Mandriva: -gcc-c++, gcc-cpp, libpcre-devel, gtkmm2.4-devel, (possibly) -libglademm2.4-devel. +gcc-c++, pcre-devel, gtkmm30-devel. Ubuntu, Debian GNU/Linux: -g++, libpcre3-dev, libgtkmm-2.4-dev, (possibly) libglademm-2.4-dev. +g++, libpcre3-dev, libgtkmm-3.0-dev. Note that usually you need to specify only these packages - the rest is installed automatically by the package manager's dependency resolver. Keep in @@ -136,25 +126,23 @@ The following operating systems are supported: * Linux - All the popular configurations should work. -* FreeBSD - Tested with DesktopBSD 1.6 (FreeBSD 6.3) / x86. +* FreeBSD - Tested with DesktopBSD / x86. -* NetBSD - Tested with NetBSD 4.0.1 / x86. +* NetBSD - Tested with NetBSD / x86. -* OpenBSD - Tested with OpenBSD 4.3 / x86-64 / gcc-3.3.5. - -* Windows (2000 SP4 or newer) - Tested with Windows 2000 SP4, Windows XP SP3, -Windows Vista SP2 (32-bit and 64-bit), Windows 7 SP1 (32-bit and 64-bit). The -Windows port uses pd0, pd1, etc... for physical drives 0, 1, etc... . - -* Solaris - Tested with Solaris 10 / x86 / gcc-3.4.3 / blastwave, -Solaris 10 / x86 / sunstudio12 / sunfreeware. OpenSolaris should work but has -not been tested yet. - -* Mac OS X - 3rd-party testing by the MacPorts and Fink projects. +* OpenBSD - Tested with OpenBSD / x86-64. * DragonFlyBSD - Code written but no testing has been performed yet. Expected to work without any issues. +* Windows Vista SP2 (32-bit and 64-bit), Windows 7 SP1, Windows Server 2008, +Windows 8.1, Windows 10. The Windows port uses pd0, pd1, etc... +for physical drives 0, 1, etc... . + +* Solaris. + +* Mac OS X - 3rd-party testing by the MacPorts and Fink projects. + * QNX - Code written but no testing has been performed yet. @@ -320,9 +308,6 @@ information in capabilities. Not all drives support disabling Automatic Offline Data Collection, even if they report otherwise. Unfortunately, there's no way to detect such drives. -Running on GTK+ / Gtkmm versions earlier than 2.12 may cause visual artifacts, -usability issues (especially with tooltips and icons), instability, etc... - The texts probably contain a lot of grammatical errors, English being my third language and all. @@ -349,7 +334,7 @@ to fix the bug. * Which version of GTK and Gtkmm you have installed. Finding this out is very distribution-specific. For example, on openSUSE it would be -"rpm -q gtk2 gtkmm2". Some distributions have gtkmm24 instead. You may also +"rpm -q gtk3 gtkmm3". Some distributions have gtkmm30 instead. You may also search them in your distribution's graphical package manager, if there is one. * Execution log from the program, if possible. To obtain it, run the program diff --git a/gsmartcontrol/TODO b/gsmartcontrol/TODO index 608189f..23b565a 100644 --- a/gsmartcontrol/TODO +++ b/gsmartcontrol/TODO @@ -38,9 +38,6 @@ Don't rely on smartctl return code (2), parse the output instead. https://www.google.com/search?num=50&hl=en&safe=off&client=opera&hs=Dr5&channel=suggest&q=calling+gtk_main_quit+during+gtk_main_iteration+warning&oq=calling+gtk_main_quit+during+gtk_main_iteration+warning&gs_l=serp.12...7064.8155.0.12753.8.8.0.0.0.0.216.935.0j6j1.7.0.les%3B..0.0...1c.1.4.serp.GUiDL5IM2U8 https://developer.gnome.org/glib/2.34/glib-The-Main-Event-Loop.html#g-main-loop-quit -Port to GTK2 with disable-deprecated flags, then GTK3. - Drop support for old distros. - In main window add multi-selection support and right-click menu with various tests, so that it's possible to run multiple tests in parallel from there. diff --git a/gsmartcontrol/autoconf.m4/app_use_system_extensions.m4 b/gsmartcontrol/autoconf.m4/app_use_system_extensions.m4 index 9de574a..420db65 100644 --- a/gsmartcontrol/autoconf.m4/app_use_system_extensions.m4 +++ b/gsmartcontrol/autoconf.m4/app_use_system_extensions.m4 @@ -89,7 +89,7 @@ AC_DEFUN([APP_USE_SYSTEM_EXTENSIONS], [ # See sys/featuretest.h ;; - mingw32) + mingw*) # This enables standards-compliant stdio behaviour (regarding printf and # friends), as opposed to msvc-compatible one. This is usually enabled # by default if one of the usual macros are encountered (_XOPEN_SOURCE, @@ -98,13 +98,8 @@ AC_DEFUN([APP_USE_SYSTEM_EXTENSIONS], [ # Other things to consider: _NO_OLDNAMES (disable "deprecated" # non-underscored names like chdir (use _chdir), etc...). # See _mingw.h for details. - app_cv_target_extension_cflags="-D__USE_MINGW_ANSI_STDIO=1 -DWINVER=0x0600" # Since vista (for gtk3) - app_cv_target_extension_cxxflags="-D__USE_MINGW_ANSI_STDIO=1 -DWINVER=0x0600" - ;; - - mingw64) - app_cv_target_extension_cflags="-D__USE_MINGW_ANSI_STDIO=1 -DWINVER=0x0600" # Since vista (for gtk3) - app_cv_target_extension_cxxflags="-D__USE_MINGW_ANSI_STDIO=1 -DWINVER=0x0600" + app_cv_target_extension_cflags="-D__USE_MINGW_ANSI_STDIO=1 -DWINVER=0x0500" # Since 2000 + app_cv_target_extension_cxxflags="-D__USE_MINGW_ANSI_STDIO=1 -DWINVER=0x0500" ;; interix) diff --git a/gsmartcontrol/autogen.sh b/gsmartcontrol/autogen.sh index eabc95f..eb630b4 100755 --- a/gsmartcontrol/autogen.sh +++ b/gsmartcontrol/autogen.sh @@ -16,7 +16,7 @@ # autoconf -autoreconf --verbose --install -W all +autoreconf --verbose --install -W all --force rm -f config.cache diff --git a/gsmartcontrol/baqup b/gsmartcontrol/baqup deleted file mode 100755 index 5863207..0000000 --- a/gsmartcontrol/baqup +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash - -stamp="../gsmartcontrol-`date +%F`" -echo $stamp - -mkdir $stamp -cp -dp * $stamp/ - -rm -f $stamp/*pcs # kdevelop persistent store files - -cp -a autoconf.m4/ $stamp/ -cp -a data/ $stamp/ -cp -a src/ $stamp/ -cp -a templates/ $stamp/ -# cp -a test-data/ $stamp/ - -tar cvf $stamp.tar $stamp -bzip2 -9 $stamp.tar - diff --git a/gsmartcontrol/configure-dev b/gsmartcontrol/configure-dev index a7f208b..aa01ffc 100755 --- a/gsmartcontrol/configure-dev +++ b/gsmartcontrol/configure-dev @@ -21,55 +21,50 @@ fi flags=""; case $type in - optimized) - flags="--disable-user-flags --enable-optimize-options --enable-tests" ;; - debug) + gcc) + flags="--enable-optimize-options --enable-tests" ;; + gcc-debug) flags="--enable-debug-options --enable-tests" ;; - clang) + clang-debug) flags="CC=clang CXX=clang++ --enable-debug-options --enable-tests" ;; - icc) - flags="CC=icc64 CXX=icpc64 --disable-user-flags --enable-tests" ;; - win32-msys-mingw) - flags="PATH=\"/mingw32/i686-w64-mingw32:/mingw32/bin:$PATH\" \ - --disable-user-flags \ - --with-nsis=/mingw32/bin/makensis.exe \ - --enable-optimize-options --enable-tests --host=i686-w64-mingw32" ;; - win32-msys-mingw-debug) - flags="PATH=\"/mingw32/i686-w64-mingw32:/mingw32/bin:$PATH\" \ - --disable-user-flags \ - --enable-debug-options --enable-tests --host=i686-w64-mingw32" ;; - win32) - flags="CC=i386-pc-mingw32-gcc CXX=i386-pc-mingw32-g++ \ - PKG_CONFIG_PATH=/cross/w32/target/lib/pkgconfig PKG_CONFIG_LIBDIR=\"\" \ - PATH=\"/cross/w32/gcc-bin:/cross/w32/target/bin:$PATH\" \ - --with-windows-gtk-name=gtk2-runtime-2.24.10-2012-10-10-ash --disable-user-flags \ - --with-nsis=/root/.wine/drive_c/Programs_x86/NSIS/makensis.exe \ - --enable-optimize-options --enable-tests --build=i686-linux --host=i386-pc-mingw32" ;; - win32-debug) - flags="CC=i386-pc-mingw32-gcc CXX=i386-pc-mingw32-g++ \ - PKG_CONFIG_PATH=/cross/w32/target/lib/pkgconfig PKG_CONFIG_LIBDIR=\"\" \ - PATH=\"/cross/w32/gcc-bin:/cross/w32/target/bin:$PATH\" \ - --disable-user-flags --enable-debug-options --enable-tests --build=i686-linux --host=i386-pc-mingw32" ;; - win64-debug) - flags="CC=x86_64-pc-mingw32-gcc CXX=x86_64-pc-mingw32-g++ - PKG_CONFIG_PATH=/cross/w64/target/lib/pkgconfig \ - PKG_CONFIG_LIBDIR=\"\" PATH=\"/cross/w64/gcc-bin:/cross/w64/target/bin:$PATH\" \ - --disable-user-flags --enable-optimize-options --enable-tests --build=i686-linux \ - --host=x86_64-pc-mingw32" ;; + icc-debug) + flags="CC=icc64 CXX=icpc64 --enable-debug-options --enable-tests" ;; sun) flags="CC=suncc CXX=sunCC CFLAGS=\"-errwarn=%all -I/opt/sun/target64/include\" \ CXXFLAGS=\"-I/opt/sun/target64/include\" PATH=\"/opt/sun/sunstudio/bin:$PATH\" \ LDFLAGS=\"-R/opt/sun/target64/lib64 -L/opt/sun/target64/lib64\" \ PKG_CONFIG_PATH=\"/opt/sun/target64/lib64/pkgconfig:/usr/lib64/pkgconfig\" \ PKG_CONFIG_LIBDIR=\"\" --enable-tests" ;; - portland) - flags="CC=pgcc CXX=pgCC LDFLAGS=\"-s\" CFLAGS=\"-Minform=warn -Bstatic_pgi\" \ - CXXFLAGS=\"-Minform=warn -Bstatic_pgi -noswitcherror -define_macro=HZ_NO_COMPILER_AUTOINCLUDE\" \ - --enable-tests" ;; - open64) - flags="CC=/opt/open64/bin/opencc CXX=/opt/open64/bin/openCC CXXFLAGS=\"-Wall\" \ - --enable-tests" ;; + win32-cross) + flags="PATH=\"/usr/i686-w64-mingw32/bin:/usr/i686-w64-mingw32/sys-root/mingw/bin:$PATH\" \ + --with-nsis=/usr/bin/makensis --with-windows-sysroot=/usr/i686-w64-mingw32/sys-root/mingw \ + --enable-optimize-options --enable-tests --host=i686-w64-mingw32" ;; + win32-cross-debug) + flags="PATH=\"/usr/i686-w64-mingw32/bin:/usr/i686-w64-mingw32/sys-root/mingw/bin:$PATH\" \ + --enable-debug-options --enable-tests --host=i686-w64-mingw32" ;; + win64-cross) + flags="PATH=\"/usr/x86_64-w64-mingw32/bin:/usr/x86_64-w64-mingw32/sys-root/mingw/bin:$PATH\" \ + --with-nsis=/usr/bin/makensis --with-windows-sysroot=/usr/x86_64-w64-mingw32/sys-root/mingw \ + --enable-optimize-options --enable-tests --host=i686-w64-mingw32" ;; + win64-cross-debug) + flags="PATH=\"/usr/x86_64-w64-mingw32/bin:/usr/x86_64-w64-mingw32/sys-root/mingw/bin:$PATH\" \ + --enable-debug-options --enable-tests --host=x86_64-w64-mingw32" ;; + + win32-msys) + flags="PATH=\"/mingw32/i686-w64-mingw32:/mingw32/bin:$PATH\" \ + --with-nsis=/mingw32/bin/makensis.exe --with-windows-sysroot=/mingw32 \ + --enable-optimize-options --enable-tests --host=i686-w64-mingw32" ;; + win32-msys-debug) + flags="PATH=\"/mingw32/i686-w64-mingw32:/mingw32/bin:$PATH\" \ + --enable-debug-options --enable-tests --host=i686-w64-mingw32" ;; + win64-msys) + flags="PATH=\"/mingw64/x86_64-w64-mingw32:/mingw64/bin:$PATH\" \ + --with-nsis=/mingw64/bin/makensis.exe --with-windows-sysroot=/mingw64 \ + --enable-optimize-options --enable-tests --host=x86_64-w64-mingw32" ;; + win64-msys-debug) + flags="PATH=\"/mingw64/x86_64-w64-mingw32:/mingw64/bin:$PATH\" \ + --enable-debug-options --enable-tests --host=x86_64-w64-mingw32" ;; esac diff --git a/gsmartcontrol/configure.ac b/gsmartcontrol/configure.ac index 350bd20..7782e55 100644 --- a/gsmartcontrol/configure.ac +++ b/gsmartcontrol/configure.ac @@ -248,17 +248,13 @@ AC_ARG_WITH([nsis], [AS_HELP_STRING([--with-nsis=|auto], ["~/.wine/drive_c/Program Files/NSIS/Unicode/makensis.exe" for others)])], [with_nsis=${withval}], [with_nsis=auto]) -AC_ARG_ENABLE([nsis-wine], [AS_HELP_STRING([--enable-nsis-wine=yes|no|auto], - [use wine to run makensis.exe when making NSIS packages (default: auto, which is no for windows, yes for others)])], - [with_nsis_wine=${enableval}], [with_nsis_wine=yes]) +AC_ARG_ENABLE([nsis-wine], [AS_HELP_STRING([--enable-nsis-wine=yes|no], + [use wine to run makensis.exe when making NSIS packages (default: no)])], + [with_nsis_wine=${enableval}], [with_nsis_wine=no]) -AC_ARG_WITH([windows-bindir], [AS_HELP_STRING([--with-windows-bindir], - [specify location of Windows dlls and executables when making Windows packages (default: /cross/w32/target/bin)])], - [with_windows_bindir=${withval}], [with_windows_bindir=auto]) - -AC_ARG_WITH([windows-gtk-name], [AS_HELP_STRING([--with-windows-gtk-name], - [specify name of Windows GTK+ runtime (installer and unpacked directory) when making Windows packages. It will be looked in windows-bindir.])], - [with_windows_gtk_name=${withval}], [with_windows_gtk_name=]) +AC_ARG_WITH([windows-sysroot], [AS_HELP_STRING([--with-windows-sysroot], + [specify location of Windows system root directory when making Windows packages (default: /mingw32)])], + [with_windows_sysroot=${withval}], [with_windows_sysroot=auto]) if test "x$with_nsis" = "xauto" || test "x$with_nsis" = "x"; then # if building on windows, use native paths @@ -269,30 +265,26 @@ if test "x$with_nsis" = "xauto" || test "x$with_nsis" = "x"; then fi fi -if test "x$with_nsis_wine" = "xauto"; then - # if not building on windows, use wine - if test "x$app_cv_build_os_kernel" = "xwindows32" || test "x$app_cv_build_os_kernel" = "xwindows64"; then - with_nsis_wine="no"; - else - with_nsis_wine="yes"; - fi -fi - NSIS_EXEC="$with_nsis"; -if test "x$with_nsis_wine" != "xno"; then +if test "x$with_nsis_wine" = "xyes"; then NSIS_EXEC="wine $with_nsis"; fi -if test "x$with_windows_bindir" = "xauto" || test "x$with_windows_bindir" = "x"; then - with_windows_bindir="/cross/w32/target/bin" +if test "x$with_windows_sysroot" = "xauto" || test "x$with_windows_sysroot" = "x"; then + with_windows_sysroot="/mingw32" fi -WINDOWS_BINDIR="$with_windows_bindir"; +WINDOWS_SYSROOT="$with_windows_sysroot"; -GTK_INSTALLER_NAME="$with_windows_gtk_name"; +WINDOWS_SUFFIX=""; +if test "x$app_cv_target_os_kernel" = "xwindows32"; then + WINDOWS_SUFFIX="win32" +elif test "x$app_cv_target_os_kernel" = "xwindows64"; then + WINDOWS_SUFFIX="win64" +fi AC_SUBST(NSIS_EXEC) -AC_SUBST(WINDOWS_BINDIR) -AC_SUBST(GTK_INSTALLER_NAME) +AC_SUBST(WINDOWS_SYSROOT) +AC_SUBST(WINDOWS_SUFFIX) # ------------------------------------------------------------------------------------- @@ -405,13 +397,13 @@ ADDITIONAL_INCLUDES="-I\$(top_builddir) -I\$(top_srcdir)/src -I\$(top_srcdir)/sr # Note: some gcc-frontend-based compilers may have to be added here # (e.g. gccfss (gcc frontend / sun backend), etc...). # We use -include only when using pch. -if test "x$app_cv_compiler_gcc_pch" = "xyes"; then - if test "$ax_cv_cxx_compiler_vendor" = "gnu" || test "$ax_cv_cxx_compiler_vendor" = "clang" \ - || test "$ax_cv_cxx_compiler_vendor" = "intel" || test "$ax_cv_cxx_compiler_vendor" = "pathscale"; then - # This auto-includes this file when compiling any file. Benefits include pch support. - ADDITIONAL_INCLUDES="$ADDITIONAL_INCLUDES -include global_macros.h" - fi -fi +# if test "x$app_cv_compiler_gcc_pch" = "xyes"; then +# if test "$ax_cv_cxx_compiler_vendor" = "gnu" || test "$ax_cv_cxx_compiler_vendor" = "clang" \ +# || test "$ax_cv_cxx_compiler_vendor" = "intel" || test "$ax_cv_cxx_compiler_vendor" = "pathscale"; then +# # This auto-includes this file when compiling any file. Benefits include pch support. +# ADDITIONAL_INCLUDES="$ADDITIONAL_INCLUDES -include global_macros.h" +# fi +# fi # our flags must be before all the others #CFLAGS="$ADDITIONAL_INCLUDES $CFLAGS" @@ -482,7 +474,7 @@ AC_SUBST(AUTODIRS) AC_CONFIG_FILES([ data/gsmartcontrol.desktop data/gsmartcontrol.appdata.xml \ - data/nsis/distribution.txt data/nsis/distribution-nogtk.txt data/nsis/gsmartcontrol.nsi \ + data/nsis/distribution.txt data/nsis/gsmartcontrol.nsi \ debian.dist/changelog \ src/gsc_winres.rc src/gsmartcontrol.exe.manifest \ gsmartcontrol.spec version compilation_flags ]) diff --git a/gsmartcontrol/data/Makefile.am b/gsmartcontrol/data/Makefile.am index 5fa727f..788d1f1 100644 --- a/gsmartcontrol/data/Makefile.am +++ b/gsmartcontrol/data/Makefile.am @@ -13,7 +13,7 @@ uninstall-extra-mans: # This command is needed if installing with make install (the cache # file is ignored for rpms). -gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor +gtk_update_icon_cache = gtk-update-icon-cache-3.0 -f -t $(datadir)/icons/hicolor install-data-hook: install-extra-mans update-icon-cache uninstall-hook: uninstall-extra-mans update-icon-cache diff --git a/gsmartcontrol/data/nsis/distribution-nogtk.txt.in b/gsmartcontrol/data/nsis/distribution-nogtk.txt.in deleted file mode 100644 index bd6a9c2..0000000 --- a/gsmartcontrol/data/nsis/distribution-nogtk.txt.in +++ /dev/null @@ -1,29 +0,0 @@ - -GSmartControl - Hard disk drive and SSD health inspection tool -Version @VERSION@ - -The latest version of this distribution, as well as the source code of -GSmartControl, can be found at -http://gsmartcontrol.sourceforge.net -and -https://sourceforge.net/projects/gsmartcontrol/files/ - -You need GTK+ for Windows Runtime package to use this program. You can get one -at http://gtk-win.sf.net (you must download at least version 2.16.6-2010-02-21 -of gtk2-runtime). - - -This distribution includes: - -* GSmartControl binary (gsmartcontrol.exe) and associated resources. The -binary was compiled for 32-bit Windows, and should work on both 32-bit and -64-bit Windows. The binary was statically compiled against Gtkmm -(http://www.gtkmm.org/) and related libraries, and PCRE (http://www.pcre.org/). - -* Smartctl binaries (from smartmontools 6.5, http://smartmontools.sf.net/) -- smartctl-nc.exe (compiled without console output), smartctl.exe (compiled -with console output), update-smart-drivedb.exe (drive database updater). - - -The combined distribution is multi-licensed under GNU GPL versions 2 and 3. -See LICENSE_gpl2.txt and LICENSE_gpl3.txt for details. diff --git a/gsmartcontrol/data/nsis/gsmartcontrol.nsi.in b/gsmartcontrol/data/nsis/gsmartcontrol.nsi.in index e7dc7c3..d054c06 100644 --- a/gsmartcontrol/data/nsis/gsmartcontrol.nsi.in +++ b/gsmartcontrol/data/nsis/gsmartcontrol.nsi.in @@ -4,11 +4,6 @@ ; Compatible with NSIS Unicode 2.45. ; Public Domain -; pass /DNO_GTK to makensis to disable inclusion of gtk. - -; gtk installer name for embedding -!define GTK_INSTALLER_EXE "@GTK_INSTALLER_NAME@.exe" - !define PRODUCT_VERSION "@VERSION@" !define PRODUCT_NAME "GSmartControl" !define PRODUCT_NAME_SMALL "gsmartcontrol" @@ -19,8 +14,6 @@ !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" !define PRODUCT_UNINST_ROOT_KEY "HKLM" -!define REGISTRY_APP_PATHS "Software\Microsoft\Windows\CurrentVersion\App Paths" - !include "FileFunc.nsh" ; GetOptions @@ -42,11 +35,7 @@ CRCCheck On Name "${PRODUCT_NAME}" ; ${PRODUCT_VERSION} ; Output File Name -!ifdef NO_GTK - OutFile "${PRODUCT_NAME_SMALL}-${PRODUCT_VERSION}-nogtk.exe" -!else - OutFile "${PRODUCT_NAME_SMALL}-${PRODUCT_VERSION}.exe" -!endif +OutFile "${PRODUCT_NAME_SMALL}-${PRODUCT_VERSION}-@WINDOWS_SUFFIX@.exe" ; The Default Installation Directory: @@ -89,19 +78,11 @@ ShowUnInstDetails show ;!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}" ;!define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language" -!ifdef NO_GTK - !define LICENSE_FILE "doc\distribution-nogtk.txt" -!else - !define LICENSE_FILE "doc\distribution.txt" -!endif +!define LICENSE_FILE "doc\distribution.txt" ; Pages to show during installation !insertmacro MUI_PAGE_WELCOME !insertmacro MUI_PAGE_LICENSE "${LICENSE_FILE}" -!ifndef NO_GTK - !define MUI_PAGE_CUSTOMFUNCTION_LEAVE on_components_page_leave - !insertmacro MUI_PAGE_COMPONENTS -!endif !insertmacro MUI_PAGE_DIRECTORY !insertmacro MUI_PAGE_INSTFILES @@ -160,12 +141,13 @@ SectionIn 1 RO File smartctl.exe File update-smart-drivedb.exe - ; Include the "doc" directory completely, excluding the file we're not using (e.g. the -nogtk file in gtk installer). -!ifdef NO_GTK - File /r /x distribution.txt doc -!else - File /r /x distribution-nogtk.txt doc -!endif + ; Include the "doc" directory completely. + File /r doc + + ; GTK and stuff + File *.dll + File /r etc + File /r share ; Add Shortcuts (this inherits the exe's run permissions) CreateShortCut "$SMPROGRAMS\GSmartControl.lnk" "$INSTDIR\gsmartcontrol.exe" "" \ @@ -175,42 +157,6 @@ SectionEnd -!ifndef NO_GTK - -; The SecGtkPrivate and SecGtkPublic sections are mutually exclusive. - -Section "GTK+ (for this program only)" SecGtkPrivate - SectionIn 1 - SetShellVarContext all ; use all user variables as opposed to current user - AddSize 12200 ; ~ size of unpacked gtk - SetOutPath "$INSTDIR" - File "${GTK_INSTALLER_EXE}" - ; TODO: in the future, when we have translations for this program, - ; make the GTK+ translations installation dependent on their installation status. - ExecWait '"${GTK_INSTALLER_EXE}" /sideeffects=no /dllpath=root /translations=no /compatdlls=no /S /D=$INSTDIR' - Delete "$INSTDIR\${GTK_INSTALLER_EXE}" -SectionEnd - -; disabled by default -Section /o "GTK+ (shared installation)" SecGtkPublic - SectionIn 1 - SetShellVarContext all ; use all user variables as opposed to current user - AddSize 12200 ; ~ size of unpacked gtk - SetOutPath "$INSTDIR" - File "${GTK_INSTALLER_EXE}" - ExecWait '"${GTK_INSTALLER_EXE}"' - Delete "$INSTDIR\${GTK_INSTALLER_EXE}" -SectionEnd - -!endif ; !NO_GTK - - -!ifndef NO_GTK -var gtk_mode ; "public", "private" or "none" -var gtk_tmp ; temporary variable -!endif - - ; Executed on installation start Function .onInit SetShellVarContext all ; use all user variables as opposed to current user @@ -220,119 +166,16 @@ Function .onInit Call PreventMultipleInstances Call DetectPrevInstallation - -; ask for gtk only if it's a non-gtk installer. -!ifdef NO_GTK - Call AskForGtk -!endif - -!ifndef NO_GTK - StrCpy $gtk_mode "private" ; default -!endif - FunctionEnd -function .onselchange - -!ifndef NO_GTK - ; Remember which gtk section was selected. - ; Deselect the other section. - - ; If it was private, we check if public is checked and uncheck private. - - StrCmp $gtk_mode "private" check_public ; old selection - StrCmp $gtk_mode "public" check_private ; old selection - goto check_exit - - check_public: - SectionGetFlags ${SecGtkPublic} $gtk_tmp ; see if it's checked - IntOp $gtk_tmp $gtk_tmp & ${SF_SELECTED} - IntCmp $gtk_tmp ${SF_SELECTED} "" check_exit check_exit - SectionGetFlags ${SecGtkPrivate} $gtk_tmp ; unselect the other one - IntOp $gtk_tmp $gtk_tmp & ${SECTION_OFF} - SectionSetFlags ${SecGtkPrivate} $gtk_tmp - goto check_exit - - check_private: - SectionGetFlags ${SecGtkPrivate} $gtk_tmp ; see if it's checked - IntOp $gtk_tmp $gtk_tmp & ${SF_SELECTED} - IntCmp $gtk_tmp ${SF_SELECTED} "" check_exit check_exit - SectionGetFlags ${SecGtkPublic} $gtk_tmp ; unselect the other one - IntOp $gtk_tmp $gtk_tmp & ${SECTION_OFF} - SectionSetFlags ${SecGtkPublic} $gtk_tmp - - check_exit: - - - ; store the current mode - StrCpy $gtk_mode "none" - - SectionGetFlags ${SecGtkPrivate} $gtk_tmp - IntOp $gtk_tmp $gtk_tmp & ${SF_SELECTED} - IntCmp $gtk_tmp ${SF_SELECTED} "" mode_end_private mode_end_private - StrCpy $gtk_mode "private" - mode_end_private: - - SectionGetFlags ${SecGtkPublic} $gtk_tmp - IntOp $gtk_tmp $gtk_tmp & ${SF_SELECTED} - IntCmp $gtk_tmp ${SF_SELECTED} "" mode_end_public mode_end_public - StrCpy $gtk_mode "public" - mode_end_public: - - ; MessageBox MB_ICONINFORMATION|MB_OK "gtk_mode: $gtk_mode" /SD IDOK -!endif ; !NO_GTK - -functionend - - -!ifndef NO_GTK -Function on_components_page_leave - StrCmp $gtk_mode "none" "" noabort - Call AskForGtk - noabort: -FunctionEnd -!endif ; !NO_GTK - - - - -; Section descriptions -!ifndef NO_GTK ; this page is shown only when using gtk -!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN - !insertmacro MUI_DESCRIPTION_TEXT ${SecMain} "GSmartControl - hard disk drive and SSD health inspection tool" - !insertmacro MUI_DESCRIPTION_TEXT ${SecGtkPrivate} "GTK+ libraries, needed by GSmartControl. \ - This will install a private version of GTK+, usable only by GSmartControl." - !insertmacro MUI_DESCRIPTION_TEXT ${SecGtkPublic} "GTK+ libraries, needed by GSmartControl. \ - This will install a system-wide version of GTK+, shareable with other programs." -!insertmacro MUI_FUNCTION_DESCRIPTION_END -!endif - - ; ------------------ POST INSTALL -var gtk_dll_abs_path - Section -post SetShellVarContext all ; use all user variables as opposed to current user - ; Don't set any paths for this exe if it has a private GTK+ installation. -!ifndef NO_GTK - StrCmp $gtk_mode "private" skip_exe_PATH -!endif - ; set a special path for this exe, as GTK may not be in a global path. - ReadRegStr $gtk_dll_abs_path HKLM "SOFTWARE\GTK\2.0" "DllPath" - WriteRegStr HKLM "${REGISTRY_APP_PATHS}\gsmartcontrol.exe" "Path" "$gtk_dll_abs_path" -!ifndef NO_GTK - skip_exe_PATH: -!endif - -!ifndef NO_GTK - WriteRegStr HKLM "SOFTWARE\${PRODUCT_NAME}" "GtkInstalledMode" "$gtk_mode" -!endif - WriteRegStr HKLM "SOFTWARE\${PRODUCT_NAME}" "InstallationDirectory" "$INSTDIR" WriteRegStr HKLM "SOFTWARE\${PRODUCT_NAME}" "Vendor" "${PRODUCT_PUBLISHER}" @@ -378,16 +221,6 @@ Section Uninstall SetShellVarContext all ; use all user variables as opposed to current user SetAutoClose false -!ifndef NO_GTK - ReadRegStr $gtk_mode HKLM "SOFTWARE\${PRODUCT_NAME}" "GtkInstalledMode" - StrCmp $gtk_mode "private" "" skip_gtk_remove - ; remove private GTK+, specify the same custom options are during installation - ExecWait "$INSTDIR\gtk2_runtime_uninst.exe /remove_config=yes /sideeffects=no /dllpath=root /translations=no /compatdlls=no /S" - ; _?=$INSTDIR - ; Delete "$INSTDIR\gtk2_runtime_uninst.exe" ; If using _? flag, it won't get deleted automatically, do it manually. - skip_gtk_remove: -!endif - ; add delete commands to delete whatever files/registry keys/etc you installed here. Delete "$INSTDIR\gsmartcontrol_uninst.exe" @@ -412,7 +245,9 @@ Section Uninstall RMDir /r "$INSTDIR\doc" - ; leftover from gtk + ; GTK and stuff + Delete "$INSTDIR\*.dll" + RMDir /r "$INSTDIR\etc" RMDir /r "$INSTDIR\share" ; clean up generated stuff @@ -421,17 +256,6 @@ Section Uninstall RMDir "$INSTDIR" ; only if empty - ; For some reason, sometimes it's not deleted in the sections, so do it here. - Delete "$INSTDIR\${GTK_INSTALLER_EXE}" - -!ifndef NO_GTK - StrCmp $gtk_mode "private" skip_exe_PATH_remove -!endif - DeleteRegKey HKLM "${REGISTRY_APP_PATHS}\gsmartcontrol.exe" -!ifndef NO_GTK - skip_exe_PATH_remove: -!endif - Delete "$SMPROGRAMS\GSmartControl.lnk" ;Delete "$SMPROGRAMS\GSmartControl\Uninstall GSmartControl.lnk" @@ -489,35 +313,6 @@ FunctionEnd -; detect GTK installation (any of available versions) -Function AskForGtk - SetShellVarContext all ; use all user variables as opposed to current user - push $R0 - - ReadRegStr $R0 HKLM "SOFTWARE\GTK\2.0" "DllPath" - StrCmp $R0 "" no_gtk have_gtk - - no_gtk: - MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \ - "GTK2-Runtime is not installed. This product needs it to function properly.$\n\ - Please install GTK2-Runtime from http://gtk-win.sf.net/ first.$\n$\n\ - Click 'Cancel' to abort the installation \ - or 'OK' to continue anyway." \ - /SD IDOK IDOK have_gtk - ;Abort ; Abort has different meaning from onpage callbacks, so use Quit - Quit - goto end_gtk_check - - have_gtk: - ; do nothing - - end_gtk_check: - - pop $R0 -FunctionEnd - - - ; Prevent running multiple instances of the installer Function PreventMultipleInstances Push $R0 diff --git a/gsmartcontrol/debian.dist/control b/gsmartcontrol/debian.dist/control index f580f22..5ad0457 100644 --- a/gsmartcontrol/debian.dist/control +++ b/gsmartcontrol/debian.dist/control @@ -3,10 +3,8 @@ Section: utils Priority: extra Homepage: http://gsmartcontrol.sourceforge.net/ Maintainer: Alexander Shaduri -# libglademm is also needed if libgtkmm-2.4 < 2.12, but don't write it -# here - newer distributions don't contain it. Build-Depends: debhelper (>= 5), autotools-dev, - libpcre3-dev, libgtkmm-2.4-dev (>= 2.6.0) + libpcre3-dev, libgtkmm-3.0-dev (>= 3.4.0) Standards-Version: 3.7.3 Package: gsmartcontrol diff --git a/gsmartcontrol/debian.dist/copyright b/gsmartcontrol/debian.dist/copyright index 530d4c9..ac8f59e 100644 --- a/gsmartcontrol/debian.dist/copyright +++ b/gsmartcontrol/debian.dist/copyright @@ -5,7 +5,7 @@ It was downloaded from Copyright: - Copyright (C) 2008 - 2012 Alexander Shaduri + Copyright (C) 2008 - 2017 Alexander Shaduri License: @@ -27,6 +27,6 @@ On Debian systems, the complete text of the GNU General 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 - 2012 Alexander Shaduri and +The Debian packaging is (C) 2008 - 2017 Alexander Shaduri and is licensed under the GPLv2 and GPLv3, see above. diff --git a/gsmartcontrol/gsmartcontrol.spec.in b/gsmartcontrol/gsmartcontrol.spec.in index 6d4261c..c6a57f6 100644 --- a/gsmartcontrol/gsmartcontrol.spec.in +++ b/gsmartcontrol/gsmartcontrol.spec.in @@ -17,34 +17,18 @@ Group: Hardware/Other # Dependencies for various distributions. The actual deps are: -# smartmontools, pcre, (gtkmm2 >= 2.12 || (gtkmm2 >= 2.6.0 && libglademm >= 2.4.0)) +# smartmontools, pcre, gtkmm3 >= 3.4.0 # (with the respective -devel packages of the libraries for build requirements). # For non-specified distributions we don't specify any dependencies to avoid errors. -# For mandriva, these contain the su programs. -# Suggests: libgnomesu, gksu, kdebase-progs - # SUSE / OpenSUSE. SLES also defines the correct suse_version. %if 0%{?suse_version} -%if 0%{?%suse_version} >= 1030 -Requires: smartmontools, pcre, gtkmm2 >= 2.12.0 -BuildRequires: gcc-c++, libstdc++-devel, pcre-devel, gtkmm2-devel >= 2.12.0 -%else -%if 0%{?%suse_version} == 1020 -Requires: smartmontools, pcre, gtkmm2 >= 2.6.0, libglademm >= 2.4.0 -BuildRequires: gcc-c++, libstdc++-devel, pcre-devel, gtkmm2-devel >= 2.6.0, libglademm-devel >= 2.4.0 -%else -Requires: smartmontools, pcre, gtkmm24 >= 2.6.0, libglademm >= 2.4.0 -BuildRequires: gcc-c++, libstdc++-devel, pcre-devel, gtkmm24-devel >= 2.6.0, libglademm-devel >= 2.4.0 -%endif -%endif +Requires: smartmontools, pcre, gtkmm3 >= 3.4.0 +BuildRequires: gcc-c++, libstdc++-devel, pcre-devel, gtkmm3-devel >= 3.4.0 BuildRequires: update-desktop-files - -%if 0%{?suse_version} >= 1030 BuildRequires: fdupes -%endif %endif @@ -53,13 +37,8 @@ BuildRequires: fdupes %if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version} # I'm not sure about centos and rhel versions -%if 0%{?fedora_version} >= 8 || 0%{?rhel_version} >= 600 || 0%{?centos_version} >= 600 -Requires: smartmontools, pcre, gtkmm24 >= 2.12.0 -BuildRequires: gcc-c++, pcre-devel, gtkmm24-devel >= 2.12.0 -%else -Requires: smartmontools, pcre, gtkmm24 >= 2.6.0, libglademm24 >= 2.4.0 -BuildRequires: gcc-c++, pcre-devel, gtkmm24-devel >= 2.6.0, libglademm24-devel >= 2.4.0 -%endif +Requires: smartmontools, pcre, gtkmm30 >= 3.4.0 +BuildRequires: gcc-c++, pcre-devel, gtkmm30-devel >= 3.4.0 # Fedora with consolehelper. # usermode-gtk is for consolehelper-gtk. @@ -70,21 +49,6 @@ Requires: usermode-gtk %endif -# Mandriva. Check the latest official spec file at -# http://svn.mandriva.com/cgi-bin/viewvc.cgi/packages/cooker/gsmartcontrol/current/ -%if 0%{?mandriva_version} - -%if 0%{?mandriva_version} >= 2008 -Requires: smartmontools, libpcre0, gtkmm2.4 >= 2.12.0 -BuildRequires: gcc-c++, gcc-cpp, pcre-devel, gtkmm2.4-devel >= 2.12.0, desktop-file-utils -%else -Requires: smartmontools, libpcre0, gtkmm2.4 >= 2.6.0, libglademm2.4 >= 2.4.0 -BuildRequires: gcc-c++, gcc-cpp, pcre-devel, gtkmm2.4-devel >= 2.6.0, libglademm2.4-devel >= 2.4.0, desktop-file-utils -%endif - -%endif - - %description GSmartControl is a graphical user interface for smartctl, which is a tool for querying and controlling SMART (Self-Monitoring, Analysis, and Reporting @@ -94,21 +58,10 @@ on it. %prep - %setup -q -%if 0%{?mandriva_version} <= 2006 %configure -%else -%configure --enable-optimize-options=auto -%endif %build -# Set up for parallel builds -#numprocs=`grep -E -c ^cpu[0-9]+ /proc/stat || :` -#if [ "$numprocs" = "0" ]; then -# numprocs=1 -#fi -#make -j$numprocs make %{?_smp_mflags} @@ -119,15 +72,13 @@ make DESTDIR=%buildroot install-strip # Remove the icon cache file "make install" generates, to avoid package conflicts. rm -f $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/icon-theme.cache + %if 0%{?suse_version} + %suse_update_desktop_file -n %{name} - # There are some png file duplicates, hardlink them. -%if 0%{?suse_version} >= 1030 %fdupes -%endif - # We install icons, so this is needed. %if 0%{?suse_version} >= 1140 @@ -179,15 +130,6 @@ EOF %endif -%if 0%{?mandriva_version} -desktop-file-install --vendor="" \ - --remove-category="Application" \ - --add-category="System" \ - --add-category="X-MandrivaLinux-System-Configuration-Hardware;Settings;HardwareSettings" \ - --dir $RPM_BUILD_ROOT%{_datadir}/applications $RPM_BUILD_ROOT%{_datadir}/applications/%{name}.desktop -%endif - - %clean rm -rf %buildroot diff --git a/gsmartcontrol/src/gsmartcontrol.exe.manifest.in b/gsmartcontrol/src/gsmartcontrol.exe.manifest.in index 2c42ef2..bd85f66 100644 --- a/gsmartcontrol/src/gsmartcontrol.exe.manifest.in +++ b/gsmartcontrol/src/gsmartcontrol.exe.manifest.in @@ -18,14 +18,11 @@ - - - true - --> diff --git a/gsmartcontrol/src/res/gsc_about_dialog.ui b/gsmartcontrol/src/res/gsc_about_dialog.ui index 04fddf5..38cdccd 100644 --- a/gsmartcontrol/src/res/gsc_about_dialog.ui +++ b/gsmartcontrol/src/res/gsc_about_dialog.ui @@ -17,7 +17,7 @@ here be authors here be documentors translator-credits - gsmartcontrol + True