Tagging 0.8.5:
GSmartControl now uses XDG config directory for per-user configuration on
UNIX and CSIDL_PROFILE directory on Windows. Existing configuration is
migrated automatically.
The names are shown correctly for unsupported devices even with the latest
smartctl snapshots now.
Smartctl SVN revision is shown (if available).
The progress bars update properly when parallel tests are run.
Windows: GSmartControl should be able to operate on any valid filesystem
path (not just locale-representable ones).
Windows: GSmartControl is now officially compilable on x86_64 via mingw64.
Fixed compilation under very old gtkmm/libglademm, and with gcc 4.4.
Fixed parsing of multiple error types in SMART error log.
Added minor features and fixed miscellaneous bugs.
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/128x128/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/16x16/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/22x22/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 4.0 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/24x24/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/256x256/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 45 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/32x32/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/48x48/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
@@ -0,0 +1,4 @@
|
||||
appicondir = $(datadir)/icons/hicolor/64x64/apps
|
||||
appicon_DATA = gsmartcontrol.png
|
||||
|
||||
EXTRA_DIST = $(appicon_DATA)
|
||||
|
After Width: | Height: | Size: 5.8 KiB |
@@ -0,0 +1,57 @@
|
||||
|
||||
SUBDIRS = 16 22 24 32 48 64 128 256 nsis
|
||||
|
||||
|
||||
dist_man_MANS = gsmartcontrol.1
|
||||
|
||||
install-extra-mans:
|
||||
cd $(DESTDIR)$(mandir)/man1 && $(LN_S) -f gsmartcontrol.1 gsmartcontrol-root.1
|
||||
|
||||
uninstall-extra-mans:
|
||||
cd $(DESTDIR)$(mandir)/man1 && rm -f gsmartcontrol-root.1
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
install-data-hook: install-extra-mans update-icon-cache
|
||||
uninstall-hook: uninstall-extra-mans update-icon-cache
|
||||
|
||||
update-icon-cache:
|
||||
@-if test -z "$(DESTDIR)"; then \
|
||||
echo "Updating GTK icon cache."; \
|
||||
$(gtk_update_icon_cache); \
|
||||
else \
|
||||
echo "*** Icon cache not updated. After (un)install, run this:"; \
|
||||
echo "*** $(gtk_update_icon_cache)"; \
|
||||
fi
|
||||
|
||||
|
||||
# Application data, installs to /usr/share/appname
|
||||
appdatadir = $(pkgdatadir)
|
||||
appdata_DATA = icon_cddvd.png icon_hdd.png
|
||||
|
||||
|
||||
# pkgdatadir = $(datadir)/gsmartcontrol
|
||||
# pkgdata_DATA =
|
||||
|
||||
# Desktop files
|
||||
desktopdir = $(datadir)/applications
|
||||
desktop_DATA = gsmartcontrol.desktop
|
||||
|
||||
|
||||
# Application pixmap (fallback icon for desktop files).
|
||||
# Same as 48/gsmartcontrol.png.
|
||||
# Also, xpm for debian menu, 32x32.
|
||||
pixmapsdir = $(datadir)/pixmaps
|
||||
pixmaps_DATA = 48/gsmartcontrol.png gsmartcontrol.xpm
|
||||
|
||||
|
||||
# Put everything inside the distribution
|
||||
EXTRA_DIST = $(appdata_DATA) gsmartcontrol.ico gsmartcontrol.xpm
|
||||
|
||||
|
||||
bin_SCRIPTS = gsmartcontrol-root
|
||||
CLEANFILES = $(bin_SCRIPTS)
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
#!/bin/bash
|
||||
############################################################################
|
||||
# Copyright:
|
||||
# (C) 2008 Alexander Shaduri <ashaduri 'at' gmail.com>
|
||||
# License: See LICENSE_zlib.txt file
|
||||
############################################################################
|
||||
|
||||
# Run gsmartcontrol with root, asking for root password first.
|
||||
|
||||
EXEC_BIN="@prefix@/bin/gsmartcontrol";
|
||||
prog_name="gsmartcontrol"
|
||||
|
||||
DESKTOP="$1";
|
||||
|
||||
# This works for --help too
|
||||
if [ "$DESKTOP" = "" ]; then
|
||||
DESKTOP="auto"; # default
|
||||
|
||||
elif [ "$DESKTOP" != "auto" ] && [ "$DESKTOP" != "kde" ] && \
|
||||
[ "$DESKTOP" != "gnome" ] && [ "$DESKTOP" != "other" ]; then
|
||||
echo "Usage: $0 [<auto|kde|gnome|other> [<${prog_name}_options>] ]";
|
||||
exit 1;
|
||||
fi
|
||||
shift; # remove $1
|
||||
|
||||
|
||||
# Auto-detect current desktop if auto was specified.
|
||||
if [ "$DESKTOP" = "auto" ]; then
|
||||
# KDE_SESSION_UID is present on kde3 and kde4.
|
||||
# Note that it may be empty (but still set)
|
||||
if [ "${KDE_SESSION_UID+set}" = "set" ]; then
|
||||
DESKTOP="kde";
|
||||
# same with gnome
|
||||
elif [ "${GNOME_DESKTOP_SESSION_ID+set}" = "set" ]; then
|
||||
DESKTOP="gnome";
|
||||
else
|
||||
DESKTOP="other";
|
||||
fi
|
||||
fi
|
||||
|
||||
# echo $DESKTOP;
|
||||
|
||||
|
||||
# They're basically the same, only the order is different.
|
||||
# sux requires xterm to ask for the password.
|
||||
# xdg-su is basically like this script, except worse :)
|
||||
gnome_sus="gnomesu gksu kdesu xdg-su sux";
|
||||
kde_sus="kdesu gnomesu gksu xdg-su sux";
|
||||
other_sus="$gnome_sus";
|
||||
|
||||
|
||||
candidates="";
|
||||
found_su=""
|
||||
|
||||
if [ "$DESKTOP" = "gnome" ]; then
|
||||
candidates="$gnome_sus";
|
||||
elif [ "$DESKTOP" = "kde" ]; then
|
||||
candidates="$kde_sus";
|
||||
elif [ "$DESKTOP" = "other" ]; then
|
||||
candidates="$other_sus";
|
||||
fi
|
||||
|
||||
for subin in $candidates; do
|
||||
which $subin &>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
found_su="$subin";
|
||||
break;
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$found_su" = "" ]; then
|
||||
xmessage "Error launching ${prog_name}: No suitable su mechanism found.
|
||||
Try installing kdesu, gnomesu, gksu or sux first.";
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
|
||||
# gnomesu and gksu (but not kdesu, not sure about others) fail to adopt
|
||||
# root's PATH. Since the user's PATH may not contain /usr/sbin (with smartctl)
|
||||
# on some distributions (e.g. mandriva), add it manually. We also add
|
||||
# /usr/local/sbin, since that's the default location of custom-compiled smartctl.
|
||||
# Add these directories _before_ existing PATH, so that the user is not
|
||||
# tricked into running it from some other path (we're running as root with
|
||||
# the user's env after all).
|
||||
export PATH="/usr/sbin:/usr/local/sbin:$PATH"
|
||||
|
||||
|
||||
# echo $found_su;
|
||||
|
||||
# Examples:
|
||||
# gnomesu -c 'gsmartcontrol --no-scan'
|
||||
# kdesu -c 'gsmartcontrol --no-scan'
|
||||
# xterm -e sux -c 'gsmartcontrol --no-scan' # sux asks for password in a terminal
|
||||
|
||||
full_cmd=""
|
||||
if [ "$found_su" = "sux" ]; then
|
||||
full_cmd="xterm -e sux -c '$EXEC_BIN $@'"
|
||||
|
||||
elif [ "$found_su" = "gksu" ]; then
|
||||
full_cmd="$found_su '$EXEC_BIN $@'"
|
||||
|
||||
else # gnomesu, kdesu, xdg-su
|
||||
full_cmd="$found_su -c '$EXEC_BIN $@'"
|
||||
fi
|
||||
|
||||
|
||||
eval $full_cmd
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
.TH GSmartControl "1" "" "gsmartcontrol " "User Commands"
|
||||
.SH NAME
|
||||
GSmartControl \- Hard disk drive health inspection tool
|
||||
.SH SYNOPSIS
|
||||
\fBgsmartcontrol\fP [OPTIONS]
|
||||
|
||||
\fBgsmartcontrol\-root\fP [\fI<desktop>\fP [OPTIONS]]
|
||||
.SH DESCRIPTION
|
||||
\fBGSmartControl\fP is a graphical user interface for smartctl (from
|
||||
smartmontools), which is a tool for querying and controlling SMART
|
||||
(Self-Monitoring, Analysis, and Reporting Technology) data on modern hard disk
|
||||
drives. It allows you to inspect the drive's SMART data to determine its
|
||||
health, as well as run various tests on it.
|
||||
.PP
|
||||
This manual page documents briefly the \fBgsmartcontrol\fP and
|
||||
\fBgsmartcontrol\-root\fP commands.
|
||||
.PP
|
||||
\fBgsmartcontrol\-root\fP command launches \fBgsmartcontrol\fP with
|
||||
administrative privileges. The \fIdesktop\fP argument specifies which desktop
|
||||
is currently running, for automatic selection of native su mechanism. Valid
|
||||
values for \fIdesktop\fP are \fBauto\fP, \fBkde\fP, \fBgnome\fP, \fBother\fP.
|
||||
|
||||
.SH OPTIONS
|
||||
.SS "Help Options:"
|
||||
.TP
|
||||
\fB\-?\fP, \fB\-\-help\fP
|
||||
Show help options
|
||||
.TP
|
||||
\fB\-\-help\-all\fP
|
||||
Show all help options
|
||||
.TP
|
||||
\fB\-\-help\-gtk\fP
|
||||
Show GTK+ options
|
||||
.TP
|
||||
\fB\-\-help\-debug\fR
|
||||
Show logging options
|
||||
.SS "Application Options:"
|
||||
.TP
|
||||
\fB\-l\fP, \fB\-\-no\-locale\fP
|
||||
Disable locale
|
||||
.TP
|
||||
\fB\-V\fP, \fB\-\-version\fP
|
||||
Display version information
|
||||
.TP
|
||||
\fB\-\-no\-scan\fP
|
||||
Don't scan devices on startup
|
||||
.TP
|
||||
\fB\-\-no\-hide\-tabs\fP
|
||||
Don't hide non\-identity tabs when SMART is disabled. Useful for debugging.
|
||||
.TP
|
||||
\fB\-\-add\-virtual\fP
|
||||
Load smartctl data from file, creating a virtual drive
|
||||
.TP
|
||||
\fB\-\-add\-device\fP
|
||||
Add this device to device list. Useful with \fB\-\-no\-scan\fP to list certain drives only.
|
||||
.TP
|
||||
\fB\-\-display\fP=\fIDISPLAY\fP
|
||||
X display to use
|
||||
.TP
|
||||
\fB\-v\fP, \fB\-\-verbose\fP
|
||||
Enable verbose logging; same as \fB\-\-verbosity\-level\fP 5
|
||||
.TP
|
||||
\fB\-q\fP, \fB\-\-quiet\fP
|
||||
Disable logging; same as \fB\-\-verbosity\-level\fP 0
|
||||
.TP
|
||||
\fB\-b\fP, \fB\-\-verbosity\-level\fP
|
||||
Set verbosity level [0\-5]
|
||||
.PP
|
||||
.SH COPYRIGHT
|
||||
Copyright \(co 2008 \- 2009 Alexander Shaduri <ashaduri \'at\' gmail.com>
|
||||
.PP
|
||||
.SH AUTHOR
|
||||
This manual page was originally written by Giuseppe Iuculano
|
||||
<giuseppe@iuculano.it>, for the Debian project.
|
||||
@@ -0,0 +1,29 @@
|
||||
[Desktop Entry]
|
||||
|
||||
# desktop file version
|
||||
Version=1.0
|
||||
Type=Application
|
||||
|
||||
Categories=System;Monitor;
|
||||
|
||||
Name=GSmartControl
|
||||
# short description, usually shown in parentheses after Name
|
||||
GenericName=Hard Disk Health Inspection
|
||||
# tooltip
|
||||
Comment=Monitor and control SMART data on hard disks
|
||||
|
||||
# If it's a name only, it looks for "name.[png|xpm]" file in
|
||||
# $XDG_DATA_DIRS/icons and /usr/share/pixmaps.
|
||||
# An absolute file path is also supported.
|
||||
Icon=gsmartcontrol
|
||||
|
||||
# Run with root permissions. This should work with newer GNOME too.
|
||||
# It _should_ work with kde, but it hangs on mine, so use plain kdesu.
|
||||
#X-KDE-SubstituteUID=true
|
||||
#X-KDE-RootOnly=true
|
||||
|
||||
# Run with root permissions.
|
||||
Exec="@prefix@/bin/gsmartcontrol-root"
|
||||
|
||||
# Build service rpmlint gives errors without this
|
||||
X-SuSE-translate=false
|
||||
|
After Width: | Height: | Size: 95 KiB |
@@ -0,0 +1,394 @@
|
||||
/* XPM */
|
||||
static char * gsmartcontrol_xpm[] = {
|
||||
"32 32 359 2",
|
||||
" c None",
|
||||
". c #ABAAAA",
|
||||
"+ c #CCCCCC",
|
||||
"@ c #C5C4C4",
|
||||
"# c #C2C1C1",
|
||||
"$ c #D2D1D1",
|
||||
"% c #C8C7C7",
|
||||
"& c #C8C7C8",
|
||||
"* c #C9C8C8",
|
||||
"= c #CAC8C9",
|
||||
"- c #CAC9C9",
|
||||
"; c #C8C6C7",
|
||||
"> c #C7C6C6",
|
||||
", c #CFCDCE",
|
||||
"' c #D1D0D0",
|
||||
") c #C6C5C6",
|
||||
"! c #CFCECE",
|
||||
"~ c #B9B7B7",
|
||||
"{ c #D4D4D4",
|
||||
"] c #DCDBDC",
|
||||
"^ c #D8D7D7",
|
||||
"/ c #D6D5D5",
|
||||
"( c #D6D5D6",
|
||||
"_ c #D7D6D6",
|
||||
": c #D9D8D8",
|
||||
"< c #DBDADB",
|
||||
"[ c #DAD9DA",
|
||||
"} c #D7D7D7",
|
||||
"| c #D6D6D6",
|
||||
"1 c #DAD9D9",
|
||||
"2 c #E2E1E1",
|
||||
"3 c #B0AFAF",
|
||||
"4 c #D3D2D2",
|
||||
"5 c #CDCCCC",
|
||||
"6 c #CDCDCD",
|
||||
"7 c #CECDCD",
|
||||
"8 c #CECECE",
|
||||
"9 c #CFCFCF",
|
||||
"0 c #D0CFCF",
|
||||
"a c #C0BFBF",
|
||||
"b c #9C9A9B",
|
||||
"c c #6E6B6B",
|
||||
"d c #807E7F",
|
||||
"e c #C8C8C8",
|
||||
"f c #CAC9CA",
|
||||
"g c #CACACA",
|
||||
"h c #CBCACA",
|
||||
"i c #CCCBCB",
|
||||
"j c #CCCBCC",
|
||||
"k c #D0CECF",
|
||||
"l c #C3C2C2",
|
||||
"m c #A09E9F",
|
||||
"n c #B5B4B4",
|
||||
"o c #AFADAE",
|
||||
"p c #787576",
|
||||
"q c #8D8B8B",
|
||||
"r c #D4D3D3",
|
||||
"s c #C7C6C7",
|
||||
"t c #C7C7C7",
|
||||
"u c #C9C8C9",
|
||||
"v c #C9C9C9",
|
||||
"w c #CACAC9",
|
||||
"x c #BFBEBE",
|
||||
"y c #A3A1A2",
|
||||
"z c #A09D9E",
|
||||
"A c #B4B2B2",
|
||||
"B c #B6B4B4",
|
||||
"C c #827F80",
|
||||
"D c #969595",
|
||||
"E c #C4C3C3",
|
||||
"F c #C4C4C4",
|
||||
"G c #C5C5C5",
|
||||
"H c #C6C5C5",
|
||||
"I c #C6C6C6",
|
||||
"J c #C9C7C8",
|
||||
"K c #B9B7B8",
|
||||
"L c #A5A4A4",
|
||||
"M c #A4A3A3",
|
||||
"N c #A7A5A5",
|
||||
"O c #B3B1B2",
|
||||
"P c #BFBDBD",
|
||||
"Q c #8D8A8B",
|
||||
"R c #A09F9F",
|
||||
"S c #DDDCDC",
|
||||
"T c #C0C0C0",
|
||||
"U c #C3C1C2",
|
||||
"V c #C3C2C3",
|
||||
"W c #C3C3C3",
|
||||
"X c #C4C3C4",
|
||||
"Y c #B2B1B1",
|
||||
"Z c #A8A7A7",
|
||||
"` c #ABA9A9",
|
||||
" . c #CFCECF",
|
||||
".. c #C2C0C1",
|
||||
"+. c #989697",
|
||||
"@. c #A8A6A7",
|
||||
"#. c #DEDDDD",
|
||||
"$. c #DEDDDE",
|
||||
"%. c #C1C0C0",
|
||||
"&. c #C2C1C2",
|
||||
"*. c #B1B0B0",
|
||||
"=. c #ADACAC",
|
||||
"-. c #AFAEAE",
|
||||
";. c #BDBCBC",
|
||||
">. c #B3B2B2",
|
||||
",. c #B4B3B4",
|
||||
"'. c #B8B8B8",
|
||||
"). c #D5D4D4",
|
||||
"!. c #C0BFBE",
|
||||
"~. c #C1C0C1",
|
||||
"{. c #C3C1C1",
|
||||
"]. c #C4C4C3",
|
||||
"^. c #B2B0B1",
|
||||
"/. c #B3B2B3",
|
||||
"(. c #B4B3B3",
|
||||
"_. c #A1A0A0",
|
||||
":. c #B9B8B8",
|
||||
"<. c #C4C2C3",
|
||||
"[. c #BDBBBC",
|
||||
"}. c #B5B4B3",
|
||||
"|. c #B6B4B5",
|
||||
"1. c #B7B5B6",
|
||||
"2. c #B7B6B7",
|
||||
"3. c #B8B7B7",
|
||||
"4. c #B8B7B8",
|
||||
"5. c #BCBABB",
|
||||
"6. c #BBBABA",
|
||||
"7. c #BFBEBF",
|
||||
"8. c #C1C1C1",
|
||||
"9. c #C1BFC0",
|
||||
"0. c #BCBBBB",
|
||||
"a. c #BEBCBD",
|
||||
"b. c #BEBDBD",
|
||||
"c. c #9B999A",
|
||||
"d. c #9D9B9B",
|
||||
"e. c #C2C2C2",
|
||||
"f. c #D4D3D4",
|
||||
"g. c #CECDCE",
|
||||
"h. c #C7C5C5",
|
||||
"i. c #A4A2A3",
|
||||
"j. c #A19F9F",
|
||||
"k. c #C6C4C5",
|
||||
"l. c #DCDCDC",
|
||||
"m. c #D0CFD0",
|
||||
"n. c #CECCCD",
|
||||
"o. c #A2A1A1",
|
||||
"p. c #939292",
|
||||
"q. c #E1E0E0",
|
||||
"r. c #E3E3E3",
|
||||
"s. c #B3B3B3",
|
||||
"t. c #CCCACB",
|
||||
"u. c #D2D2D2",
|
||||
"v. c #D5D3D4",
|
||||
"w. c #A7A6A6",
|
||||
"x. c #959494",
|
||||
"y. c #E3E2E2",
|
||||
"z. c #DCDBDB",
|
||||
"A. c #CBC9CA",
|
||||
"B. c #E1E0E1",
|
||||
"C. c #DFDEDE",
|
||||
"D. c #CECCCC",
|
||||
"E. c #CDCCCD",
|
||||
"F. c #D2D0D0",
|
||||
"G. c #D2D0D1",
|
||||
"H. c #B5B4B5",
|
||||
"I. c #B1AFB0",
|
||||
"J. c #EDECEC",
|
||||
"K. c #D1CFCF",
|
||||
"L. c #CDCBCC",
|
||||
"M. c #D5D5D5",
|
||||
"N. c #DCDADA",
|
||||
"O. c #C5C4C5",
|
||||
"P. c #D2D1D2",
|
||||
"Q. c #D5D4D5",
|
||||
"R. c #DADADA",
|
||||
"S. c #DBDADA",
|
||||
"T. c #DDDCDD",
|
||||
"U. c #D7D6D7",
|
||||
"V. c #E8E7E7",
|
||||
"W. c #D8D8D8",
|
||||
"X. c #D8D6D6",
|
||||
"Y. c #D9D8D9",
|
||||
"Z. c #DBDBDB",
|
||||
"`. c #DDDDDD",
|
||||
" + c #474747",
|
||||
".+ c #ECEBEB",
|
||||
"++ c #F3F3F3",
|
||||
"@+ c #E4E3E3",
|
||||
"#+ c #E0DFDF",
|
||||
"$+ c #E5E5E5",
|
||||
"%+ c #EFEFEF",
|
||||
"&+ c #EBEAEB",
|
||||
"*+ c #E6E5E5",
|
||||
"=+ c #E0E0E0",
|
||||
"-+ c #E4E4E4",
|
||||
";+ c #E5E4E4",
|
||||
">+ c #ECECEC",
|
||||
",+ c #666666",
|
||||
"'+ c #585757",
|
||||
")+ c #D9D9DA",
|
||||
"!+ c #E2E2E2",
|
||||
"~+ c #E6E5E6",
|
||||
"{+ c #E1E1E1",
|
||||
"]+ c #E6E6E6",
|
||||
"^+ c #E7E7E7",
|
||||
"/+ c #898989",
|
||||
"(+ c #767575",
|
||||
"_+ c #E0DFE0",
|
||||
":+ c #E9E9E9",
|
||||
"<+ c #BDBDBD",
|
||||
"[+ c #B6B6B6",
|
||||
"}+ c #B0B0B0",
|
||||
"|+ c #ACACAC",
|
||||
"1+ c #ACABAC",
|
||||
"2+ c #A7A7A7",
|
||||
"3+ c #DFDFDF",
|
||||
"4+ c #E5E5E4",
|
||||
"5+ c #E9E8E8",
|
||||
"6+ c #E8E8E8",
|
||||
"7+ c #E3E2E3",
|
||||
"8+ c #D7D5D5",
|
||||
"9+ c #8E8D8D",
|
||||
"0+ c #807F7F",
|
||||
"a+ c #494848",
|
||||
"b+ c #5A5758",
|
||||
"c+ c #605E5F",
|
||||
"d+ c #646262",
|
||||
"e+ c #555354",
|
||||
"f+ c #1F1F1F",
|
||||
"g+ c #282626",
|
||||
"h+ c #323031",
|
||||
"i+ c #3D3C3C",
|
||||
"j+ c #494748",
|
||||
"k+ c #555353",
|
||||
"l+ c #5A5959",
|
||||
"m+ c #3E3D3D",
|
||||
"n+ c #434242",
|
||||
"o+ c #444343",
|
||||
"p+ c #414041",
|
||||
"q+ c #3E3E3E",
|
||||
"r+ c #4A4949",
|
||||
"s+ c #706D6E",
|
||||
"t+ c #6B6969",
|
||||
"u+ c #6A6869",
|
||||
"v+ c #696469",
|
||||
"w+ c #656065",
|
||||
"x+ c #595757",
|
||||
"y+ c #A5A5A5",
|
||||
"z+ c #767676",
|
||||
"A+ c #8A8888",
|
||||
"B+ c #4B4849",
|
||||
"C+ c #5C5A5A",
|
||||
"D+ c #686565",
|
||||
"E+ c #524F50",
|
||||
"F+ c #000000",
|
||||
"G+ c #090607",
|
||||
"H+ c #171415",
|
||||
"I+ c #262324",
|
||||
"J+ c #363334",
|
||||
"K+ c #454343",
|
||||
"L+ c #4A4748",
|
||||
"M+ c #212020",
|
||||
"N+ c #2A292A",
|
||||
"O+ c #2C2B2B",
|
||||
"P+ c #272626",
|
||||
"Q+ c #242424",
|
||||
"R+ c #242323",
|
||||
"S+ c #3C3B3B",
|
||||
"T+ c #726F70",
|
||||
"U+ c #6C696A",
|
||||
"V+ c #6B676A",
|
||||
"W+ c #7A916C",
|
||||
"X+ c #7B926B",
|
||||
"Y+ c #605F60",
|
||||
"Z+ c #9C9B9C",
|
||||
"`+ c #606060",
|
||||
" @ c #8F8D8D",
|
||||
".@ c #494747",
|
||||
"+@ c #595657",
|
||||
"@@ c #615E5F",
|
||||
"#@ c #656162",
|
||||
"$@ c #525050",
|
||||
"%@ c #020101",
|
||||
"&@ c #0C0A0A",
|
||||
"*@ c #1A1818",
|
||||
"=@ c #282525",
|
||||
"-@ c #454243",
|
||||
";@ c #494647",
|
||||
">@ c #2A2929",
|
||||
",@ c #393838",
|
||||
"'@ c #363536",
|
||||
")@ c #323131",
|
||||
"!@ c #2B292A",
|
||||
"~@ c #282727",
|
||||
"{@ c #444243",
|
||||
"]@ c #696666",
|
||||
"^@ c #666268",
|
||||
"/@ c #709D48",
|
||||
"(@ c #7BAD4A",
|
||||
"_@ c #68686A",
|
||||
":@ c #8F8E8F",
|
||||
"<@ c #4E4D4E",
|
||||
"[@ c #8E8C8D",
|
||||
"}@ c #484546",
|
||||
"|@ c #555253",
|
||||
"1@ c #5D595A",
|
||||
"2@ c #5F5B5C",
|
||||
"3@ c #514F50",
|
||||
"4@ c #0F0D0D",
|
||||
"5@ c #211E1F",
|
||||
"6@ c #312E2F",
|
||||
"7@ c #413D3E",
|
||||
"8@ c #222121",
|
||||
"9@ c #2E2D2D",
|
||||
"0@ c #312F30",
|
||||
"a@ c #262425",
|
||||
"b@ c #464344",
|
||||
"c@ c #696667",
|
||||
"d@ c #666263",
|
||||
"e@ c #5F5E5F",
|
||||
"f@ c #5A5B5B",
|
||||
"g@ c #797577",
|
||||
"h@ c #7A7A7A",
|
||||
"i@ c #4C4A4A",
|
||||
"j@ c #2A2728",
|
||||
"k@ c #2C292A",
|
||||
"l@ c #302D2E",
|
||||
"m@ c #312F2F",
|
||||
"n@ c #2E2C2C",
|
||||
"o@ c #100F0F",
|
||||
"p@ c #110F10",
|
||||
"q@ c #141212",
|
||||
"r@ c #1B1919",
|
||||
"s@ c #242222",
|
||||
"t@ c #2D2B2B",
|
||||
"u@ c #322F30",
|
||||
"v@ c #2F2D2D",
|
||||
"w@ c #2B2829",
|
||||
"x@ c #292728",
|
||||
"y@ c #363233",
|
||||
"z@ c #332F30",
|
||||
"A@ c #312D2F",
|
||||
"B@ c #2A2627",
|
||||
"C@ c #424040",
|
||||
"D@ c #454444",
|
||||
"E@ c #737373",
|
||||
"F@ c #828282",
|
||||
"G@ c #939293",
|
||||
"H@ c #9C9C9C",
|
||||
"I@ c #A3A3A3",
|
||||
"J@ c #A9A9A9",
|
||||
"K@ c #ADADAD",
|
||||
"L@ c #B2B2B2",
|
||||
"M@ c #B5B5B5",
|
||||
"N@ c #A4A4A4",
|
||||
"O@ c #959595",
|
||||
"P@ c #8C8C8C",
|
||||
"Q@ c #707070",
|
||||
"R@ c #FFFFFF",
|
||||
" ",
|
||||
" . + @ # $ % & * = - ; > * - - - * , ' ) ! ~ ",
|
||||
" = { ' ] ^ { / / ( _ : < [ ^ ^ } ^ | 1 2 } 3 ",
|
||||
" - 4 ' ' 5 6 6 6 7 7 8 9 ! ! 9 9 0 0 $ 5 a b c ",
|
||||
" d 4 [ * e - - f g h h h i i j + 5 5 k l m n o p ",
|
||||
" q _ r @ > > s s t % % * * u v - w 5 x y z A B C ",
|
||||
" D 1 7 l E F @ @ G H H I > > > J * K L M N O P Q ",
|
||||
" R S % T U U l V W E X F @ @ > E Y Z ` > .* ..+. ",
|
||||
" @.#.$.W %.# # # &.l l V E G T *.=.-.*.5 ;.>.,.Z ",
|
||||
" n '.).[ !.T ~.# ..{.U l ].x Y ^.>.A /.(.x ;.O _. ",
|
||||
" :.^.<.h a %.%.# # # &.U [.}.|.1.2.3.4.K K a 5.N ",
|
||||
" 6.i H 7.%.8.# &.# l * % E 9.[.5.0.[.;.a.b.;., %.c. ",
|
||||
" d.> 0 a # &.e.V V % ^ f.j g - % %.....&.l V l g.h.i. ",
|
||||
" j./ i # E E @ k.H l.g.%.# l E H <.b.; > % % % m.n.o. ",
|
||||
" p.q.7 @ ) > % % - r.) > % * * g f s.5 t.i i i u.v.w. ",
|
||||
" x.y.z.> u - g A.- B.C.D.E.! 0 7 (.6.$ ' ' F.G.).^ H. ",
|
||||
" I.7 J.K.L.7 7 ! ! m.S 1 m.- %.3.8./ ).M./ | _ : N.; ",
|
||||
" O., F.f.P.4 4 4 f.f.r / Q.4 4 ^ R.: : 1 [ S.< S T.U. ",
|
||||
" 4 V.| ).| _ W._ X.^ : Y.1 S.Z.z.] S S `.#.C.C.2 V.q. + ",
|
||||
" S..+++@+`.#+$+%+&+*+2 #+=+q.y.-+-+-+;+$+$+*+>+++Z.*+,+ ",
|
||||
" '+S.# $ >+r.m.e.# 6 )+!+~+*+@+B.=+{+-+]+]+^+]+^+j 5 y./+ ",
|
||||
" (+b.3 _+! m.#+:+q.r > <+[+}+|+3 '.b.8.> e 5 7 ! ^+j 1+2+ ",
|
||||
" x.] ! r / ^ W.R.S 3+2 y.@+4+5+6+^+~+*+;+7+#+C.#.S.8+: V ",
|
||||
" 9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+o+n+p+q+r+s+t+u+v+w+x+y+ ",
|
||||
" z+A+B+C+d+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+ ",
|
||||
" `+ @.@+@@@#@$@%@&@*@=@J+-@;@>@,@'@)@!@~@{@c ]@^@/@(@_@:@ ",
|
||||
" <@[@}@|@1@2@3@F+%@4@5@6@7@-@8@9@9@0@~@a@b@c@#@d@e@f@g@h@ ",
|
||||
" i@j@k@l@m@n@o@p@q@r@s@t@u@!@l@v@v@w@x@l@y@z@6@A@B@C@D@ ",
|
||||
" E@F@G@H@I@J@K@}+L@M@M@M@s.}+|+N@H@O@P@F@Q@ ",
|
||||
" R@R@R@R@R@R@R@R@R@ ",
|
||||
" ",
|
||||
" "};
|
||||
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
@@ -0,0 +1,2 @@
|
||||
|
||||
EXTRA_DIST = distribution.txt.in gsmartcontrol.nsi.in nsi_install.ico nsi_uninstall.ico
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
GSmartControl - Hard disk drive 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.berlios.de
|
||||
and
|
||||
http://developer.berlios.de/project/showfiles.php?group_id=10075
|
||||
|
||||
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.14.4-2008-11-11
|
||||
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 5.39-0-20090826-r2878,
|
||||
http://smartmontools.sf.net/) - smartctl-nc.exe (compiled without console
|
||||
output), smartctl.exe (compiled with console output).
|
||||
|
||||
|
||||
The combined distribution is multi-licensed under GNU GPL versions 2 and 3.
|
||||
See LICENSE_gpl2.txt and LICENSE_gpl3.txt for details.
|
||||
@@ -0,0 +1,293 @@
|
||||
|
||||
; NSIS2 Script
|
||||
; Compatible with NSIS 2.40
|
||||
|
||||
|
||||
!define PRODUCT_VERSION "@VERSION@"
|
||||
!define PRODUCT_NAME "GSmartControl"
|
||||
!define PRODUCT_NAME_SMALL "gsmartcontrol"
|
||||
!define PRODUCT_PUBLISHER "Alexander Shaduri"
|
||||
!define PRODUCT_WEB_SITE "http://gsmartcontrol.berlios.de"
|
||||
|
||||
;!define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\AppMainExe.exe"
|
||||
!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"
|
||||
|
||||
|
||||
|
||||
|
||||
; --------------- General Settings
|
||||
|
||||
|
||||
; This compressor gives us the best results
|
||||
SetCompressor /SOLID lzma
|
||||
|
||||
; Do a CRC check before installing
|
||||
CRCCheck On
|
||||
|
||||
; This is used in titles
|
||||
Name "${PRODUCT_NAME}" ; ${PRODUCT_VERSION}
|
||||
|
||||
; Output File Name
|
||||
OutFile "${PRODUCT_NAME_SMALL}-${PRODUCT_VERSION}.exe"
|
||||
|
||||
|
||||
|
||||
;The Default Installation Directory
|
||||
; try to install to the same directory as runtime.
|
||||
InstallDir "$PROGRAMFILES\${PRODUCT_NAME_SMALL}"
|
||||
; If already installed, try here
|
||||
InstallDirRegKey HKLM "SOFTWARE\${PRODUCT_NAME}" "InstallationDirectory"
|
||||
|
||||
|
||||
ShowInstDetails show
|
||||
ShowUnInstDetails show
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
; --------------------- MUI INTERFACE
|
||||
|
||||
; MUI 2.0 compatible install
|
||||
!include "MUI2.nsh"
|
||||
|
||||
;Backgound Colors. uncomment to enable fullscreen.
|
||||
; BGGradient 0000FF 000000 FFFFFF
|
||||
|
||||
; MUI Settings
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_ICON "nsi_install.ico"
|
||||
!define MUI_UNICON "nsi_uninstall.ico"
|
||||
|
||||
|
||||
;Things that need to be extracted on first (keep these lines before any File command!)
|
||||
;Only useful for BZIP2 compression
|
||||
!insertmacro MUI_RESERVEFILE_LANGDLL
|
||||
;!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
|
||||
|
||||
|
||||
; Language Selection Dialog Settings
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "${PRODUCT_UNINST_ROOT_KEY}"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "${PRODUCT_UNINST_KEY}"
|
||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "NSIS:Language"
|
||||
|
||||
|
||||
; Pages to show during installation
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
!insertmacro MUI_PAGE_LICENSE "doc\distribution.txt"
|
||||
;!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
|
||||
;!define MUI_FINISHPAGE_RUN "$INSTDIR\gsmartcontrol.exe"
|
||||
;!define MUI_FINISHPAGE_SHOWREADME "$INSTDIR\Example.file"
|
||||
;!define MUI_FINISHPAGE_RUN_NOTCHECKED
|
||||
!define MUI_FINISHPAGE_NOAUTOCLOSE
|
||||
!define MUI_FINISHPAGE_NOREBOOTSUPPORT
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
|
||||
|
||||
; Uninstaller page
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
|
||||
|
||||
; Language files
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
|
||||
|
||||
; --------------- END MUI
|
||||
|
||||
LangString TEXT_IO_TITLE ${LANG_ENGLISH} "GSmartControl"
|
||||
|
||||
|
||||
|
||||
; --------------- START INSTALLATION
|
||||
|
||||
|
||||
Function .onInit
|
||||
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
|
||||
Push 2 ;F ;22 = number of languages, F = change font
|
||||
|
||||
;Language selection
|
||||
LangDLL::LangDialog "Installer Language" "Please select a language."
|
||||
|
||||
Pop $LANGUAGE
|
||||
StrCmp $LANGUAGE "cancel" 0 +2
|
||||
Abort
|
||||
|
||||
; detect previous installation
|
||||
ReadRegStr $R0 HKLM "${PRODUCT_UNINST_KEY}" "UninstallString"
|
||||
StrCmp $R0 "" no_prev
|
||||
|
||||
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \
|
||||
"${PRODUCT_NAME} is already installed. $\n$\nClick 'OK' to remove the \
|
||||
previous version or 'Cancel' to continue anyway." \
|
||||
IDOK uninst_product
|
||||
; Abort
|
||||
goto no_prev ; if cancel was pressed, continue as if no old installation.
|
||||
|
||||
;Run the uninstaller
|
||||
uninst_product:
|
||||
ClearErrors
|
||||
ExecWait '$R0 _?=$INSTDIR' ;Do not copy the uninstaller to a temp file
|
||||
|
||||
IfErrors cannot_uninst_product
|
||||
|
||||
;You can either use Delete /REBOOTOK in the uninstaller or add some code
|
||||
;here to remove the uninstaller. Use a registry key to check
|
||||
;whether the user has chosen to uninstall. If you are using an uninstaller
|
||||
;components page, make sure all sections are uninstalled.
|
||||
cannot_uninst_product:
|
||||
|
||||
no_prev: ; no old installation found, all ok
|
||||
|
||||
|
||||
|
||||
|
||||
; detect GTK installation (any of available versions)
|
||||
ReadRegStr $R0 HKLM "SOFTWARE\GTK\2.0" "DllPath"
|
||||
StrCmp $R0 "" no_gtk
|
||||
|
||||
goto 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." \
|
||||
IDOK have_gtk
|
||||
Abort
|
||||
|
||||
have_gtk:
|
||||
; do nothing
|
||||
|
||||
|
||||
|
||||
FunctionEnd
|
||||
|
||||
|
||||
|
||||
|
||||
; ----------------- INSTALLATION TYPES
|
||||
|
||||
; InstType "Recommended"
|
||||
InstType "Full"
|
||||
;InstType "Minimal"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Section "Main" SecMain
|
||||
SectionIn 1
|
||||
SetOutPath "$INSTDIR"
|
||||
|
||||
SetOverwrite Off ; don't overwrite the config file
|
||||
; File "gsmartcontrol.conf"
|
||||
|
||||
SetOverwrite On
|
||||
File gsmartcontrol.exe
|
||||
File gsmartcontrol.ico
|
||||
File icon_*.png
|
||||
; File *.dll
|
||||
File smartctl-nc.exe
|
||||
File smartctl.exe
|
||||
|
||||
File /r doc
|
||||
|
||||
; set a special path for this exe, as GTK may not be in a global path.
|
||||
ReadRegStr $R3 HKLM "SOFTWARE\GTK\2.0" "DllPath"
|
||||
WriteRegStr HKLM "${REGISTRY_APP_PATHS}\gsmartcontrol.exe" "Path" "$R3"
|
||||
|
||||
;Add Shortcuts
|
||||
CreateShortCut "$SMPROGRAMS\GSmartControl.lnk" "$INSTDIR\gsmartcontrol.exe" "" "$INSTDIR\gsmartcontrol.ico" 0
|
||||
|
||||
SectionEnd
|
||||
|
||||
|
||||
|
||||
; ------------------ POST INSTALL
|
||||
|
||||
|
||||
!define TEMP $R0
|
||||
|
||||
Section -post
|
||||
|
||||
WriteRegStr HKLM "SOFTWARE\${PRODUCT_NAME}" "InstallationDirectory" "$INSTDIR"
|
||||
WriteRegStr HKLM "SOFTWARE\${PRODUCT_NAME}" "Vendor" "Alexander Shaduri"
|
||||
|
||||
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "DisplayName" "${PRODUCT_NAME}"
|
||||
WriteRegStr HKLM "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\gsmartcontrol_uninst.exe"
|
||||
|
||||
; We don't need this, MUI takes care for us
|
||||
WriteRegStr HKCU "Software\${PRODUCT_NAME}" "Installer Language" $LANGUAGE
|
||||
|
||||
; uninstall shortcut
|
||||
; CreateDirectory "$SMPROGRAMS\GSmartControl"
|
||||
; CreateShortCut "$SMPROGRAMS\GSmartControl\Uninstall GSmartControl.lnk" "$INSTDIR\gsmartcontrol_uninst.exe" "" ""
|
||||
|
||||
|
||||
; write out uninstaller
|
||||
WriteUninstaller "$INSTDIR\gsmartcontrol_uninst.exe"
|
||||
|
||||
SectionEnd ; post
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
; ---------------- UNINSTALL
|
||||
|
||||
|
||||
|
||||
Function un.onUninstSuccess
|
||||
HideWindow
|
||||
MessageBox MB_ICONINFORMATION|MB_OK "$(^Name) was successfully removed from your computer."
|
||||
FunctionEnd
|
||||
|
||||
|
||||
|
||||
|
||||
Section Uninstall
|
||||
|
||||
SetAutoClose false
|
||||
|
||||
; add delete commands to delete whatever files/registry keys/etc you installed here.
|
||||
Delete "$INSTDIR\gsmartcontrol_uninst.exe"
|
||||
|
||||
DeleteRegKey HKLM "SOFTWARE\${PRODUCT_NAME}"
|
||||
DeleteRegKey HKLM "${PRODUCT_UNINST_KEY}"
|
||||
|
||||
Delete "$INSTDIR\gsmartcontrol.exe"
|
||||
Delete "$INSTDIR\gsmartcontrol.ico"
|
||||
Delete "$INSTDIR\icon_*.png"
|
||||
; Delete "$INSTDIR\*.dll"
|
||||
Delete "$INSTDIR\smartctl-nc.exe"
|
||||
Delete "$INSTDIR\smartctl.exe"
|
||||
|
||||
RMDir /r "$INSTDIR\doc"
|
||||
|
||||
RMDir "$INSTDIR" ; only if empty
|
||||
|
||||
DeleteRegKey HKLM "${REGISTRY_APP_PATHS}\gsmartcontrol.exe"
|
||||
|
||||
Delete "$SMPROGRAMS\GSmartControl.lnk"
|
||||
; Delete "$SMPROGRAMS\GSmartControl\Uninstall GSmartControl.lnk"
|
||||
|
||||
|
||||
SectionEnd ; end of uninstall section
|
||||
|
||||
|
||||
|
||||
|
||||
; eof
|
||||
|
After Width: | Height: | Size: 766 B |
|
After Width: | Height: | Size: 766 B |