Commits

Moises Henriquez committed bda6a9c

Revisions to setup.py, fixed references for correct dir structure

Comments (0)

Files changed (116)

+# Contributor: pierce.jason [VL7]
+
+pkgname=vasm
+pkgver=3.0.98.0
+#pkgver=3.0.99.9
+pkgrel=1
+pkgdesc="Vectorlinux's Administration & System Menu (Alpha release). 
+System configuration tool for both TUI and GUI. Complete rewrite of 
+vasm with goals such as to provide greater modularity for 
+maintainability, better support for localization and 
+internationalization, and tighter integration with the distro 
+installer and with the system its self. The prior vasm has been 
+renamed and moved to vasm-legacy and will remain installed on the 
+system for your convenience."
+arch=('any')
+url="https://bitbucket.org/m0e_lnx/vasm/wiki"
+license=('GPL')
+depends=( 'python' 'urwid' 'pyparted' 'python-pexpect' 'psutil' 'vasm-legacy' )
+#ADDRB="urwid, pyparted, python-pexpect, psutil, vasm-legacy"
+ADDRB="urwid, pyparted, python-pexpect, psutil"
+optdepends=(	"gparted: Not yet in 64bit repo"
+		"vasm-legacy: The tried and true bash vasm") # Manually mirror to slack-suggests
+backup=("etc/sudoers.d/vasm")
+changelog="slack-changes"
+_hgrepo="pierce_jason"
+#_hgrepo="m0e_lnx"
+source=("https://bitbucket.org/$_hgrepo/vasm/get/$pkgver.tar.bz2"
+	"sudoers.d-vasm"
+	"vasm.desktop"
+	"vasm-tui.desktop")
+sha256sums=('ed8f036dadec3d9b1d2d1e58b316c05dd46e3b410817b449bccc1556b25fb9de'
+            'f3cf56b9a9e8578176ca64d5c69e2d8ddec4aa24a9278167a85d9bf915f21bab'
+            'cd5f2fd8ea9f73680683bdb1cae9857a2c02697efcdb54be8848a53d01ac94c1'
+            '5615e41705b84bf180ed95d6308db8b7a818ea153302bbcf3be12839b698e11a')
+build() {
+	python -m compileall .; # Pre-generate .pyc files.
+}
+package() {
+	cd $srcdir/$_hgrepo-$pkgname-$pkgver;
+	
+	mkdir -p $pkgdir/usr/share/$pkgname-$pkgver;	
+	cp *.{py,pyc} $pkgdir/usr/share/$pkgname-$pkgver/;
+	cp -a modules $pkgdir/usr/share/$pkgname-$pkgver/
+	
+	mkdir -p $pkgdir/usr/bin;
+	install -m755 vasm $pkgdir/usr/bin/;
+	
+	mkdir -p $pkgdir/usr/doc/$pkgname-$pkgver;
+	cp *.txt $pkgdir/usr/doc/$pkgname-$pkgver;
+	cp -a AUTHORS COPYING ChangeLog Credits MANIFEST README TODO \
+		$pkgdir/usr/doc/$pkgname-$pkgver/ 2>/dev/null || true;
+
+
+	cd $srcdir;
+	install -d -m700 $pkgdir/etc/sudoers.d
+	install -m400 sudoers.d-vasm $pkgdir/etc/sudoers.d/
+	
+	mkdir -p $pkgdir/usr/share/applications;
+	cp *.desktop $pkgdir/usr/share/applications/;
+}
+
+cat > /dev/null << 'EndofComment' 
+package() {
+	cd "$srcdir/$pkgname-$pkgver"
+	python setup.py install --root="$pkgdir/" --optimize=1;
+}
+EndofComment

_build/PKGBUILD.devel

+# Contributor: pierce.jason [VL7]
+
+pkgname=pyVasm-devel
+pkgver=0.0.99
+pkgrel=1
+pkgdesc="Update helper for pyVasm development tree."
+arch=('any')
+url="https://bitbucket.org/m0e_lnx/vasm/"
+license=('GPL')
+depends=('mercurial' 'urwid' 'pyparted' 'python-pexpect' 'psutil' 'sh' )
+ADDRB='mercurial, urwid, pyparted, python-pexpect, psutil, sh'
+install=
+options=(emptydirs)
+source=("pyVasm-helper.sh")
+sha256sums=('64fbf66e34676a8a4365b48555a9b5773fad2b9f992ec30a2e3613e5b2b075d6')
+
+package() {
+	cd $srcdir
+	mkdir -p $pkgdir/opt/$pkgname;
+	mkdir -p $pkgdir/usr/bin
+	
+	chmod 755 pyVasm-helper.sh;
+	cp pyVasm-helper.sh $pkgdir/usr/bin/;
+	ln -s /usr/bin/pyVasm-helper.sh $pkgdir/usr/bin/pyVasm
+}

_build/slack-changes

+* 7.0-noarch-3vl70
+	- Remove etc/sudoers for real this time. Forgot to do the rm on 2vl70.
+	- (* Note prior changes *)
+* 7.0-noarch-2vl70
+	- Fix sudo misconfiguration leading to local privilege escalation. Sudo access to vasm changed from group "users" to group "sys".
+	- Removed etc/sudoers file from package.
+	- Moved sudo configs related to this package into etc/sudoers.d/vasm
+	- (* Security fix *)
+	- pkg://vlconfig2
+	- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-FAKECVE
+	- http://helic.wholebean.info/~pierce.jason/sudoers-vuln.txt

_build/slack-suggests

+gparted
+vasm-legacy

_build/sudoers.d-vasm

+# sudoers.d-vasm-0.2
+Cmnd_Alias VASM-LEGACY=/bin/vasm-legacy,/sbin/vasm-legacy,/sbin/vlapt
+Cmnd_Alias VASM=/usr/bin/vasm
+
+# Anyone in the group 'adm'(administrative special privs) can run some programs with a password.
+%adm ALL=VASM,VASM-LEGACY,HW2

_build/vasm-devel.sh

+#!/bin/sh
+SELF=$(basename $0 | cut -d. -f1)
+helper_ver="0.1"
+
+usage() {
+cat <<HELP
+$SELF - Update helper for ${pkgname%-devel} development tree.
+Handles update checking and launches ${pkgname%-devel}. Any options after a double
+dash -- are passed unmodified to the ${pkgname%-devel} subprocess.
+ver. $helper_ver
+
+Usage: $SELF [-u] [-h]
+Usage: $SELF [-a] [-l] [VASM UI] -- [VASM OPTS]
+
+Options:
+	-a, --alternate_source <mercurial repo>
+		Use alternate source repo for updates.
+		Default: $hg_url
+		NOTE: Option not current implemented.
+	-h,  --help
+		Output this help message.
+	-l, --library
+		Start helper in shell library mode. Do not run any functions.
+		Allow functions and variables to be sourced into an
+		interactive POSIX environment.
+	-u, --update
+		Run update checks then exit.	
+		
+VASM UI selects the user interface. If not specified, auto-selection is
+based on presence of running Xorg(env DISPLAY). Usually resulting in GUI.
+
+Valid VASM UI choices:
+	tui
+		Text user interface, utilizing urwid display toolkit.
+	gui
+		Graphical user interface, utilizing gtk display toolkit.
+HELP
+}
+
+
+#####################  Configuration  #####################
+
+pkgname="vasm-devel"
+pkgdir="/opt/$pkgname" # Location of files on disk
+hg_url="https://bitbucket.org/m0e_lnx/vasm" # Where to clone/pullfrom
+change_file=".hg/last_pull" # File for checking last pull
+update_timeframe="4"; # 4 days between update checks
+	
+#####################  Functions  #####################
+
+# Ensures directory exists and repo has been cloned.
+startup_verification() {
+	if [ ! -d "$pkgdir" ]; then
+		echo "Directory $pkgdir does not exist.";
+		echo -e "This should have been created by package install.\nExiting.";	
+		exit;
+	fi;
+	
+	cd $pkgdir;
+	
+	if [ ! -d "$pkgdir/.hg" ]; then
+		echo "Directory $pkgdir/.hg does not exist.";
+		echo "Devel repo not initialized. Cloning now.";
+		
+		hg clone $hg_url $pkgdir/; local hg_ret=$?;
+		touch_change_file $hg_ret;
+	fi;
+}
+
+# List files changed since last update.
+# Run between pull and update commands.
+show_changed() {
+	hg status --rev . --rev tip;
+}
+
+# Update the timestamp on our change_file.
+# First check if any problems pulling (hg_ret).
+touch_change_file() {
+	local hg_ret=$1;
+
+	if [ "$hg_ret" -gt "0" ]; then
+		echo "Problem pulling updates. hg returned status $hg_ret";
+		exit 1;
+	else
+		# 'Touch' the change_file.
+		echo "Do not remove." > $pkgdir/$change_file; 
+	fi;
+}
+
+# See if our check_file dates indicate a need to update.
+# Turn dates 2011-10-18* into 20111018 for doing math.
+# Prompt before checking for updates.
+need_updates() {
+	local last_pull;
+	local today;
+	local difference;
+	
+	if [ -f $pkgdir/$change_file ]; then
+		last_pull=$( stat -c%y $pkgdir/$change_file | cut -d " " -f1 | sed "s/-//g" );
+	else
+		get_updates;
+		return;
+	fi;
+	
+	today=$( date +%F | sed "s/-//g" );
+	difference=$(( $today - $last_pull ));
+	if [ "$difference" -gt "$update_timeframe" ]; then
+		echo "Time to check for updates. Run \`hg pull\` now? [Y/n]";
+		read confirm;
+		if [ "$confirm" != "n" ]; then
+			get_updates;
+			return;
+		else
+			echo "Update check aborted. You can do this at any time by running \`hg pull && hg update\`.";
+			return;
+		fi;
+	else
+		echo "Less than $update_timeframe days since last check. Not doing automatic update.";
+		echo "You can force update at any time by running \`$SELF -u\`.";
+	fi;
+}
+
+# Pull and display updates. Update change_file timestamp.
+# Prompt before merging updates into filesystem.
+get_updates() {
+	hg pull; local hg_ret=$?;
+	touch_change_file $hg_ret;
+	show_changed;
+	echo "Merge these changes? [Y/n]";
+	read confirm;
+	if [ "$confirm" != "n" ]; then
+		hg update;
+	else
+		echo "Merge aborted. You can do this at any time by running \`hg update\`.";
+	fi;
+}
+
+choose_ui() {
+	local ui_choice;
+	local ui_command;
+	
+	if [ -z "$1" ]; then
+		if [ -z "$DISPLAY" ]; then
+			ui_choice="tui";
+		else
+			ui_choice="gui";
+		fi;
+	else
+		ui_choice="$1";
+	fi;
+	
+	case "$1" in
+		tui	) ;;
+		gui	) ;;
+		*	) echo "Unknown ui selected: $ui_choice. If this is really what you want, try passing it directly to ${pkgname%-devel}."
+	esac;
+	
+	echo "Running ${pkgname%-devel} with selected UI: $ui_choice." > /dev/stderr;
+	echo $ui_command;
+}
+
+main() {
+	local ui_cmd;
+	
+	# Make sure we have a directory and a repo in place.
+	startup_verification;
+	
+	# Check timestamps to see if we need to try to update.
+	need_updates;	
+	
+	ui_cmd=$( choose_ui $1 );
+	
+	echo "python2 $ui_cmd";
+	python2 $ui_cmd;
+	exit 0;
+}
+
+#####################  Dispatcher code	#####################
+
+if [ -z "$1" ]; then
+	main;
+fi;
+
+until [ -z "$1" ]; do
+	case "$1" in
+		-a | --alternate_source ) hg_url="$2"; shift;;
+		-l | --library ) DO='';;
+		-u | --update ) startup_verification; DO="get_updates";;
+		-h | --help | -* ) usage; exit;;
+		* ) DO="main $1";;
+	esac;
+	shift;
+done;
+
+eval "$DO";

_build/vasm-tui.desktop

+[Desktop Entry]
+Comment[en_US]=VASM Text User Interface
+Comment=VASM Text User Interface
+Exec=/usr/bin/vasm -i tui
+GenericName[en_US]=VL Administration & System Menu
+GenericName=VL Administration & System Menu
+Icon=package-utilities
+MimeType=
+Name[en_US]=VASM (TUI)
+Name=VASM (TUI)
+Path=
+StartupNotify=true
+Terminal=true
+TerminalOptions=
+Type=Application
+Categories=Application;System;Utilities
+X-DBUS-ServiceName=
+X-DBUS-StartupType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=

_build/vasm.desktop

+[Desktop Entry]
+Comment[en_US]=VASM Graphical User Interface
+Comment=VASM Graphical User Interface
+Exec=/usr/bin/vasm
+GenericName[en_US]=VL Administration & System Menu
+GenericName=VL Administration & System Menu
+Icon=package-utilities
+MimeType=
+Name[en_US]=VASM (GUI)
+Name=VASM (GUI)
+Path=
+StartupNotify=true
+Terminal=false
+TerminalOptions=
+Type=Application
+Categories=Application;System;Utilities
+X-DBUS-ServiceName=
+X-DBUS-StartupType=
+X-KDE-SubstituteUID=false
+X-KDE-Username=

build/PKGBUILD

-# Contributor: pierce.jason [VL7]
-
-pkgname=vasm
-pkgver=3.0.98.0
-#pkgver=3.0.99.9
-pkgrel=1
-pkgdesc="Vectorlinux's Administration & System Menu (Alpha release). 
-System configuration tool for both TUI and GUI. Complete rewrite of 
-vasm with goals such as to provide greater modularity for 
-maintainability, better support for localization and 
-internationalization, and tighter integration with the distro 
-installer and with the system its self. The prior vasm has been 
-renamed and moved to vasm-legacy and will remain installed on the 
-system for your convenience."
-arch=('any')
-url="https://bitbucket.org/m0e_lnx/vasm/wiki"
-license=('GPL')
-depends=( 'python' 'urwid' 'pyparted' 'python-pexpect' 'psutil' 'vasm-legacy' )
-#ADDRB="urwid, pyparted, python-pexpect, psutil, vasm-legacy"
-ADDRB="urwid, pyparted, python-pexpect, psutil"
-optdepends=(	"gparted: Not yet in 64bit repo"
-		"vasm-legacy: The tried and true bash vasm") # Manually mirror to slack-suggests
-backup=("etc/sudoers.d/vasm")
-changelog="slack-changes"
-_hgrepo="pierce_jason"
-#_hgrepo="m0e_lnx"
-source=("https://bitbucket.org/$_hgrepo/vasm/get/$pkgver.tar.bz2"
-	"sudoers.d-vasm"
-	"vasm.desktop"
-	"vasm-tui.desktop")
-sha256sums=('ed8f036dadec3d9b1d2d1e58b316c05dd46e3b410817b449bccc1556b25fb9de'
-            'f3cf56b9a9e8578176ca64d5c69e2d8ddec4aa24a9278167a85d9bf915f21bab'
-            'cd5f2fd8ea9f73680683bdb1cae9857a2c02697efcdb54be8848a53d01ac94c1'
-            '5615e41705b84bf180ed95d6308db8b7a818ea153302bbcf3be12839b698e11a')
-build() {
-	python -m compileall .; # Pre-generate .pyc files.
-}
-package() {
-	cd $srcdir/$_hgrepo-$pkgname-$pkgver;
-	
-	mkdir -p $pkgdir/usr/share/$pkgname-$pkgver;	
-	cp *.{py,pyc} $pkgdir/usr/share/$pkgname-$pkgver/;
-	cp -a modules $pkgdir/usr/share/$pkgname-$pkgver/
-	
-	mkdir -p $pkgdir/usr/bin;
-	install -m755 vasm $pkgdir/usr/bin/;
-	
-	mkdir -p $pkgdir/usr/doc/$pkgname-$pkgver;
-	cp *.txt $pkgdir/usr/doc/$pkgname-$pkgver;
-	cp -a AUTHORS COPYING ChangeLog Credits MANIFEST README TODO \
-		$pkgdir/usr/doc/$pkgname-$pkgver/ 2>/dev/null || true;
-
-
-	cd $srcdir;
-	install -d -m700 $pkgdir/etc/sudoers.d
-	install -m400 sudoers.d-vasm $pkgdir/etc/sudoers.d/
-	
-	mkdir -p $pkgdir/usr/share/applications;
-	cp *.desktop $pkgdir/usr/share/applications/;
-}
-
-cat > /dev/null << 'EndofComment' 
-package() {
-	cd "$srcdir/$pkgname-$pkgver"
-	python setup.py install --root="$pkgdir/" --optimize=1;
-}
-EndofComment

build/PKGBUILD.devel

-# Contributor: pierce.jason [VL7]
-
-pkgname=pyVasm-devel
-pkgver=0.0.99
-pkgrel=1
-pkgdesc="Update helper for pyVasm development tree."
-arch=('any')
-url="https://bitbucket.org/m0e_lnx/vasm/"
-license=('GPL')
-depends=('mercurial' 'urwid' 'pyparted' 'python-pexpect' 'psutil' 'sh' )
-ADDRB='mercurial, urwid, pyparted, python-pexpect, psutil, sh'
-install=
-options=(emptydirs)
-source=("pyVasm-helper.sh")
-sha256sums=('64fbf66e34676a8a4365b48555a9b5773fad2b9f992ec30a2e3613e5b2b075d6')
-
-package() {
-	cd $srcdir
-	mkdir -p $pkgdir/opt/$pkgname;
-	mkdir -p $pkgdir/usr/bin
-	
-	chmod 755 pyVasm-helper.sh;
-	cp pyVasm-helper.sh $pkgdir/usr/bin/;
-	ln -s /usr/bin/pyVasm-helper.sh $pkgdir/usr/bin/pyVasm
-}

build/slack-changes

-* 7.0-noarch-3vl70
-	- Remove etc/sudoers for real this time. Forgot to do the rm on 2vl70.
-	- (* Note prior changes *)
-* 7.0-noarch-2vl70
-	- Fix sudo misconfiguration leading to local privilege escalation. Sudo access to vasm changed from group "users" to group "sys".
-	- Removed etc/sudoers file from package.
-	- Moved sudo configs related to this package into etc/sudoers.d/vasm
-	- (* Security fix *)
-	- pkg://vlconfig2
-	- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-FAKECVE
-	- http://helic.wholebean.info/~pierce.jason/sudoers-vuln.txt

build/slack-suggests

-gparted
-vasm-legacy

build/sudoers.d-vasm

-# sudoers.d-vasm-0.2
-Cmnd_Alias VASM-LEGACY=/bin/vasm-legacy,/sbin/vasm-legacy,/sbin/vlapt
-Cmnd_Alias VASM=/usr/bin/vasm
-
-# Anyone in the group 'adm'(administrative special privs) can run some programs with a password.
-%adm ALL=VASM,VASM-LEGACY,HW2

build/vasm-devel.sh

-#!/bin/sh
-SELF=$(basename $0 | cut -d. -f1)
-helper_ver="0.1"
-
-usage() {
-cat <<HELP
-$SELF - Update helper for ${pkgname%-devel} development tree.
-Handles update checking and launches ${pkgname%-devel}. Any options after a double
-dash -- are passed unmodified to the ${pkgname%-devel} subprocess.
-ver. $helper_ver
-
-Usage: $SELF [-u] [-h]
-Usage: $SELF [-a] [-l] [VASM UI] -- [VASM OPTS]
-
-Options:
-	-a, --alternate_source <mercurial repo>
-		Use alternate source repo for updates.
-		Default: $hg_url
-		NOTE: Option not current implemented.
-	-h,  --help
-		Output this help message.
-	-l, --library
-		Start helper in shell library mode. Do not run any functions.
-		Allow functions and variables to be sourced into an
-		interactive POSIX environment.
-	-u, --update
-		Run update checks then exit.	
-		
-VASM UI selects the user interface. If not specified, auto-selection is
-based on presence of running Xorg(env DISPLAY). Usually resulting in GUI.
-
-Valid VASM UI choices:
-	tui
-		Text user interface, utilizing urwid display toolkit.
-	gui
-		Graphical user interface, utilizing gtk display toolkit.
-HELP
-}
-
-
-#####################  Configuration  #####################
-
-pkgname="vasm-devel"
-pkgdir="/opt/$pkgname" # Location of files on disk
-hg_url="https://bitbucket.org/m0e_lnx/vasm" # Where to clone/pullfrom
-change_file=".hg/last_pull" # File for checking last pull
-update_timeframe="4"; # 4 days between update checks
-	
-#####################  Functions  #####################
-
-# Ensures directory exists and repo has been cloned.
-startup_verification() {
-	if [ ! -d "$pkgdir" ]; then
-		echo "Directory $pkgdir does not exist.";
-		echo -e "This should have been created by package install.\nExiting.";	
-		exit;
-	fi;
-	
-	cd $pkgdir;
-	
-	if [ ! -d "$pkgdir/.hg" ]; then
-		echo "Directory $pkgdir/.hg does not exist.";
-		echo "Devel repo not initialized. Cloning now.";
-		
-		hg clone $hg_url $pkgdir/; local hg_ret=$?;
-		touch_change_file $hg_ret;
-	fi;
-}
-
-# List files changed since last update.
-# Run between pull and update commands.
-show_changed() {
-	hg status --rev . --rev tip;
-}
-
-# Update the timestamp on our change_file.
-# First check if any problems pulling (hg_ret).
-touch_change_file() {
-	local hg_ret=$1;
-
-	if [ "$hg_ret" -gt "0" ]; then
-		echo "Problem pulling updates. hg returned status $hg_ret";
-		exit 1;
-	else
-		# 'Touch' the change_file.
-		echo "Do not remove." > $pkgdir/$change_file; 
-	fi;
-}
-
-# See if our check_file dates indicate a need to update.
-# Turn dates 2011-10-18* into 20111018 for doing math.
-# Prompt before checking for updates.
-need_updates() {
-	local last_pull;
-	local today;
-	local difference;
-	
-	if [ -f $pkgdir/$change_file ]; then
-		last_pull=$( stat -c%y $pkgdir/$change_file | cut -d " " -f1 | sed "s/-//g" );
-	else
-		get_updates;
-		return;
-	fi;
-	
-	today=$( date +%F | sed "s/-//g" );
-	difference=$(( $today - $last_pull ));
-	if [ "$difference" -gt "$update_timeframe" ]; then
-		echo "Time to check for updates. Run \`hg pull\` now? [Y/n]";
-		read confirm;
-		if [ "$confirm" != "n" ]; then
-			get_updates;
-			return;
-		else
-			echo "Update check aborted. You can do this at any time by running \`hg pull && hg update\`.";
-			return;
-		fi;
-	else
-		echo "Less than $update_timeframe days since last check. Not doing automatic update.";
-		echo "You can force update at any time by running \`$SELF -u\`.";
-	fi;
-}
-
-# Pull and display updates. Update change_file timestamp.
-# Prompt before merging updates into filesystem.
-get_updates() {
-	hg pull; local hg_ret=$?;
-	touch_change_file $hg_ret;
-	show_changed;
-	echo "Merge these changes? [Y/n]";
-	read confirm;
-	if [ "$confirm" != "n" ]; then
-		hg update;
-	else
-		echo "Merge aborted. You can do this at any time by running \`hg update\`.";
-	fi;
-}
-
-choose_ui() {
-	local ui_choice;
-	local ui_command;
-	
-	if [ -z "$1" ]; then
-		if [ -z "$DISPLAY" ]; then
-			ui_choice="tui";
-		else
-			ui_choice="gui";
-		fi;
-	else
-		ui_choice="$1";
-	fi;
-	
-	case "$1" in
-		tui	) ;;
-		gui	) ;;
-		*	) echo "Unknown ui selected: $ui_choice. If this is really what you want, try passing it directly to ${pkgname%-devel}."
-	esac;
-	
-	echo "Running ${pkgname%-devel} with selected UI: $ui_choice." > /dev/stderr;
-	echo $ui_command;
-}
-
-main() {
-	local ui_cmd;
-	
-	# Make sure we have a directory and a repo in place.
-	startup_verification;
-	
-	# Check timestamps to see if we need to try to update.
-	need_updates;	
-	
-	ui_cmd=$( choose_ui $1 );
-	
-	echo "python2 $ui_cmd";
-	python2 $ui_cmd;
-	exit 0;
-}
-
-#####################  Dispatcher code	#####################
-
-if [ -z "$1" ]; then
-	main;
-fi;
-
-until [ -z "$1" ]; do
-	case "$1" in
-		-a | --alternate_source ) hg_url="$2"; shift;;
-		-l | --library ) DO='';;
-		-u | --update ) startup_verification; DO="get_updates";;
-		-h | --help | -* ) usage; exit;;
-		* ) DO="main $1";;
-	esac;
-	shift;
-done;
-
-eval "$DO";

build/vasm-tui.desktop

-[Desktop Entry]
-Comment[en_US]=VASM Text User Interface
-Comment=VASM Text User Interface
-Exec=/usr/bin/vasm -i tui
-GenericName[en_US]=VL Administration & System Menu
-GenericName=VL Administration & System Menu
-Icon=package-utilities
-MimeType=
-Name[en_US]=VASM (TUI)
-Name=VASM (TUI)
-Path=
-StartupNotify=true
-Terminal=true
-TerminalOptions=
-Type=Application
-Categories=Application;System;Utilities
-X-DBUS-ServiceName=
-X-DBUS-StartupType=
-X-KDE-SubstituteUID=false
-X-KDE-Username=

build/vasm.desktop

-[Desktop Entry]
-Comment[en_US]=VASM Graphical User Interface
-Comment=VASM Graphical User Interface
-Exec=/usr/bin/vasm
-GenericName[en_US]=VL Administration & System Menu
-GenericName=VL Administration & System Menu
-Icon=package-utilities
-MimeType=
-Name[en_US]=VASM (GUI)
-Name=VASM (GUI)
-Path=
-StartupNotify=true
-Terminal=false
-TerminalOptions=
-Type=Application
-Categories=Application;System;Utilities
-X-DBUS-ServiceName=
-X-DBUS-StartupType=
-X-KDE-SubstituteUID=false
-X-KDE-Username=
     version = version,
     description = "VetorLinux's Administration & System Menu",
     classifiers = [
-        'Development Status :: 4 - Beta',
+        'Development Status :: 5 - Alpha',
         'Intended Audience :: End Users, System Administrators',
         'License :: GNU GPL Version 3',
         'Topic :: System Administration',
     author_email = __author_email__,
     url = 'http://bitbucket.org/m0e_lnx/vasm',
     license = 'GNU GPL v3',
-    packages = ['vasm', 'vasm.backend', 'vasm.ui', 'vasm.ui.gtk2', 'vasm.ui.urwid'],
-    package_dir={'vasm':'src/vasm/'},
+    packages = ['vasm', 'vasm.backend', 'vasm.ui', 
+                'vasm.ui.gtk2', 'vasm.ui.tui',
+                'vasm.ui.gtk2.modules', 'vasm.ui.gtk2.support',
+                'vasm.ui.tui.modules', 'vasm.ui.tui.support'],
+    package_dir={'vasm' : 'src/vasm/'},
     data_files=[
         ('/usr/share/pixmaps',['src/vasm/data/vasm.png']),
         ('/usr/share/applications', ['src/vasm/data/vasm.desktop',
             'src/vasm/data/vasm-tui.desktop'],
         ),
-        ('/usr/share/vasm/data', ['src/vasm/data/login_gdm.png',
+        ('/usr/share/vasm', ['src/vasm/data/LICENSE',
+            'src/vasm/data/bootmenu.png',
+            'src/vasm/data/bootmode.png',
+            'src/vasm/data/category_graphical_environment.png',
+            'src/vasm/data/category_hardware.png',
+            'src/vasm/data/category_networking.png',
+            'src/vasm/data/category_personal.png',
+            'src/vasm/data/category_startup_options.png',
+            'src/vasm/data/category_system.png',
+            'src/vasm/data/category_unknown.png',
+            'src/vasm/data/datetime.png',
+            'src/vasm/data/gdmconfig.png',
+            'src/vasm/data/gparted.svg',
+            'src/vasm/data/gui_desktop.png',
+            'src/vasm/data/harddisk.png',
+            'src/vasm/data/hardinfo.png',
+            'src/vasm/data/kdmconfig.png',
+            'src/vasm/data/login_gdm.png',
             'src/vasm/data/login_kdm.png',
             'src/vasm/data/login_unknown.png',
             'src/vasm/data/login_xdm.png',
+            'src/vasm/data/package-utilities.png',
+            'src/vasm/data/servicehelp.txt',
+            'src/vasm/data/setup_logging.sh',
+            'src/vasm/data/terminal.png',
+            'src/vasm/data/users.png',
+            'src/vasm/data/vasm.png',
             'src/vasm/data/vasmcc-logo.png',
             'src/vasm/data/vasmcc-logo_trimmed.png',
             'src/vasm/data/vectorlinux-logo.png',
-            'src/vasm/data/LICENSE',
-            'src/vasm/data/servicehelp.txt',
-            'src/vasm/data/setup_logging.sh']),
-        ('/usr/share/vasm/data/icons', ['src/vasm/data/icons/bootmenu.png',
-            'src/vasm/data/icons/bootmode.png',
-            'src/vasm/data/icons/category_graphical_environment.png',
-            'src/vasm/data/icons/category_hardware.png',
-            'src/vasm/data/icons/category_networking.png',
-            'src/vasm/data/icons/category_personal.png',
-            'src/vasm/data/icons/category_startup_options.png',
-            'src/vasm/data/icons/category_system.png',
-            'src/vasm/data/icons/category_unknown.png',
-            'src/vasm/data/icons/datetime.png',
-            'src/vasm/data/icons/gdmconfig.png',
-            'src/vasm/data/icons/gparted.svg',
-            'src/vasm/data/icons/gui_desktop.png',
-            'src/vasm/data/icons/harddisk.png',
-            'src/vasm/data/icons/hardinfo.png',
-            'src/vasm/data/icons/kdmconfig.png',
-            'src/vasm/data/icons/package-utilities.png',
-            'src/vasm/data/icons/terminal.png',
-            'src/vasm/data/icons/users.png',
-            'src/vasm/data/icons/xfce.png',
-            'src/vasm/data/icons/xscreensaver.xpm']),            
-            ],
+            'src/vasm/data/xfce.png',
+            'src/vasm/data/xscreensaver.xpm'])],
+##        ('/usr/share/vasm',['src/vasm/data/*.png',
+##            'src/vasm/data/icons/*.*'])],
+##        ('/usr/share/vasm/data', ['src/vasm/data/login_gdm.png',
+##            'src/vasm/data/login_kdm.png',
+##            'src/vasm/data/login_unknown.png',
+##            'src/vasm/data/login_xdm.png',
+##            'src/vasm/data/vasmcc-logo.png',
+##            'src/vasm/data/vasmcc-logo_trimmed.png',
+##            'src/vasm/data/vectorlinux-logo.png',
+##            'src/vasm/data/LICENSE',
+##            'src/vasm/data/servicehelp.txt',
+##            'src/vasm/data/setup_logging.sh']),
+##        ('/usr/share/vasm/data/icons', ['src/vasm/data/icons/bootmenu.png',
+##            'src/vasm/data/icons/bootmode.png',
+##            'src/vasm/data/icons/category_graphical_environment.png',
+##            'src/vasm/data/icons/category_hardware.png',
+##            'src/vasm/data/icons/category_networking.png',
+##            'src/vasm/data/icons/category_personal.png',
+##            'src/vasm/data/icons/category_startup_options.png',
+##            'src/vasm/data/icons/category_system.png',
+##            'src/vasm/data/icons/category_unknown.png',
+##            'src/vasm/data/icons/datetime.png',
+##            'src/vasm/data/icons/gdmconfig.png',
+##            'src/vasm/data/icons/gparted.svg',
+##            'src/vasm/data/icons/gui_desktop.png',
+##            'src/vasm/data/icons/harddisk.png',
+##            'src/vasm/data/icons/hardinfo.png',
+##            'src/vasm/data/icons/kdmconfig.png',
+##            'src/vasm/data/icons/package-utilities.png',
+##            'src/vasm/data/icons/terminal.png',
+##            'src/vasm/data/icons/users.png',
+##            'src/vasm/data/icons/xfce.png',
+##            'src/vasm/data/icons/xscreensaver.xpm']),            
+##            ],
     requires = ['psutil','urwid','parted','pexpect','shutil'],
-    scripts = ['src/vasm.py'])
+    scripts = ['src/vasm/vasm'])

src/vasm.py

-#!/usr/bin/env python
-
-#    This file is part of VASM.
-#
-#    VASM is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU General Public License v3 as published by
-#    the Free Software Foundation.
-#
-#    VASM 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 VASM.  If not, see <http://www.gnu.org/licenses/>.
-
-__author__ = "Moises Henriquez"
-__author_email__ = "moc.liamg@xnl.E0M"[::-1]
-
-# vasm launcher script.
-import os
-import logging
-import logging.handlers
-from optparse import OptionParser
-
-def start_logger():
-    logger = logging.getLogger('vasm')
-    hdlr = logging.handlers.SysLogHandler(address='/dev/log', facility='local0')
-    #formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
-    formatter = logging.Formatter('%(levelname)s %(message)s')
-    hdlr.setFormatter(formatter)
-    logger.addHandler(hdlr)
-    logger.setLevel(logging.ERROR)
-
-def get_logger_level(level):
-    """ return the proper logger level for the specified level"""
-    levels = {'0':logging.CRITICAL,
-        '1':logging.FATAL,
-        '2':logging.ERROR,
-        '3':logging.INFO,
-        '4':logging.DEBUG}
-    return levels[level] or levels['4']
-
-def launch_tui():
-    from vasm.ui.urwid import tvasm
-    logger.debug("Starting VASM urwid ui for uid=%s"% os.geteuid())
-    return tvasm.main()
-
-def launch_gui():
-    from vasm.ui.gtk2 import panedui
-    logger.debug("Starting VASM GTK+2 ui for uid=%s"% os.geteuid())
-    return panedui.main()
-
-def main():
-    if os.getenv("DISPLAY"):
-        return launch_gui()
-    return launch_tui()
-
-if __name__ == "__main__":
-     # process commandline options
-    start_logger()
-    logger = logging.getLogger('vasm')
-    parser = OptionParser()
-    parser.add_option("-v", "--verbose", dest="verbose",
-                      help = "Verbosity level [ 0 - 4 ].")
-    parser.add_option('-i','--interface', dest='interface',
-                      help=''.join(('Interface to be  launched [ gui or tui ].', '  '
-                                   'If nothing is specified, it will default to whatever is available')))
-    (options, args) = parser.parse_args()
-    
-    if options.verbose is not None:
-        logger.setLevel(get_logger_level(options.verbose))
-    if options.interface is None:
-        main()
-    elif options.interface == 'tui':
-        launch_tui()
-    elif options.interface == 'gui':
-        launch_gui()
-    

src/vasm/backend/utils.py

 
 __author__ = "Moises Henriquez"
 __author_email__ = "moc.liamg@xnl.E0M"[::-1]
-
-if os.path.exists('/usr/share/vasm/data'):
-    datapath = '/usr/share/vasm/data'
-else:
-    datapath = os.path.join(os.path.dirname(os.path.dirname((__file__))), 'data')
+__vasm_version__ = '3.0a1'
+datapath = '/usr/share/vasm'
 
 def _(txt):
     return txt
Add a comment to this file

src/vasm/data/bootmenu.png

Added
New image
Add a comment to this file

src/vasm/data/bootmode.png

Added
New image
Add a comment to this file

src/vasm/data/category_graphical_environment.png

Added
New image
Add a comment to this file

src/vasm/data/category_hardware.png

Added
New image
Add a comment to this file

src/vasm/data/category_networking.png

Added
New image
Add a comment to this file

src/vasm/data/category_personal.png

Added
New image
Add a comment to this file

src/vasm/data/category_startup_options.png

Added
New image
Add a comment to this file

src/vasm/data/category_system.png

Added
New image
Add a comment to this file

src/vasm/data/category_unknown.png

Added
New image
Add a comment to this file

src/vasm/data/datetime.png

Added
New image
Add a comment to this file

src/vasm/data/gdmconfig.png

Added
New image
Added
New image
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   version="1.0"
+   width="96"
+   height="96"
+   id="svg2408">
+  <defs
+     id="defs2410">
+    <linearGradient
+       id="linearGradient3733">
+      <stop
+         id="stop3735"
+         style="stop-color:#ffbf67;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3737"
+         style="stop-color:#c70000;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4327">
+      <stop
+         id="stop4329"
+         style="stop-color:#f0f0f0;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4331"
+         style="stop-color:#b4b4b4;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient4225">
+      <stop
+         id="stop4227"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop4229"
+         style="stop-color:#484848;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3322">
+      <stop
+         id="stop3324"
+         style="stop-color:#7a7a7a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3326"
+         style="stop-color:#f9f9f9;stop-opacity:1"
+         offset="0.2032043" />
+      <stop
+         id="stop3328"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="0.42969123" />
+      <stop
+         id="stop3330"
+         style="stop-color:#dedede;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3448">
+      <stop
+         id="stop3450"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3452"
+         style="stop-color:#000000;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3376">
+      <stop
+         id="stop3378"
+         style="stop-color:#767676;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3380"
+         style="stop-color:#fdfdfd;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3273">
+      <stop
+         id="stop3275"
+         style="stop-color:#7a7a7a;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3281"
+         style="stop-color:#f9f9f9;stop-opacity:1"
+         offset="0.14636412" />
+      <stop
+         id="stop3283"
+         style="stop-color:#c9c9c9;stop-opacity:1"
+         offset="0.37253973" />
+      <stop
+         id="stop3277"
+         style="stop-color:#dedede;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3220">
+      <stop
+         id="stop3222"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3224"
+         style="stop-color:#bfbfbf;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3173">
+      <stop
+         id="stop3175"
+         style="stop-color:#e6e6e6;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3189"
+         style="stop-color:#c3c3c3;stop-opacity:1"
+         offset="0.26003402" />
+      <stop
+         id="stop3187"
+         style="stop-color:#b9b9b9;stop-opacity:1"
+         offset="0.49180263" />
+      <stop
+         id="stop3191"
+         style="stop-color:#c8c8c8;stop-opacity:1"
+         offset="0.75914466" />
+      <stop
+         id="stop3177"
+         style="stop-color:#e6e6e6;stop-opacity:1"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="45.447727"
+       y1="92.539597"
+       x2="45.447727"
+       y2="7.0165396"
+       id="ButtonShadow"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="scale(1.0058652,0.994169)">
+      <stop
+         id="stop3750"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3752"
+         style="stop-color:#000000;stop-opacity:0.58823532"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient3737">
+      <stop
+         id="stop3739"
+         style="stop-color:#ffffff;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3741"
+         style="stop-color:#ffffff;stop-opacity:0"
+         offset="1" />
+    </linearGradient>
+    <filter
+       x="-0.29508197"
+       y="-0.46153846"
+       width="1.5901639"
+       height="1.9230769"
+       color-interpolation-filters="sRGB"
+       id="filter3179">
+      <feGaussianBlur
+         id="feGaussianBlur3181"
+         stdDeviation="6.6964288" />
+    </filter>
+    <filter
+       color-interpolation-filters="sRGB"
+       id="filter3174">
+      <feGaussianBlur
+         id="feGaussianBlur3176"
+         stdDeviation="1.71" />
+    </filter>
+    <linearGradient
+       x1="36.357143"
+       y1="6"
+       x2="36.357143"
+       y2="63.893143"
+       id="linearGradient3188"
+       xlink:href="#linearGradient3737"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="-1.857143"
+       y1="86.214287"
+       x2="88"
+       y2="8.6071424"
+       id="linearGradient3179"
+       xlink:href="#linearGradient3173"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="6"
+       y1="77.09375"
+       x2="32"
+       y2="77.09375"
+       id="linearGradient3279"
+       xlink:href="#linearGradient3322"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="6"
+       y1="77.09375"
+       x2="32.030617"
+       y2="77.09375"
+       id="linearGradient3287"
+       xlink:href="#linearGradient3273"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,1,96.030615,0)" />
+    <linearGradient
+       x1="6"
+       y1="75.5"
+       x2="45.219246"
+       y2="75.5"
+       id="linearGradient3454"
+       xlink:href="#linearGradient3448"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-1,0,0,1,96,0)" />
+    <linearGradient
+       x1="48"
+       y1="77.09375"
+       x2="48"
+       y2="90"
+       id="linearGradient3460"
+       xlink:href="#linearGradient3448"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="41.041885"
+       y1="72"
+       x2="48"
+       y2="19.160589"
+       id="linearGradient3517"
+       xlink:href="#linearGradient3737"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="38.765545"
+       y1="73"
+       x2="38.765545"
+       y2="-60.29591"
+       id="linearGradient3527"
+       xlink:href="#linearGradient3448"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0277778,0,0,1.0499999,-0.3055556,-2.6499999)" />
+    <linearGradient
+       x1="44.324883"
+       y1="12"
+       x2="44.324883"
+       y2="72.11245"
+       id="linearGradient3547"
+       xlink:href="#linearGradient4327"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       x1="18.742928"
+       y1="8.046936"
+       x2="109.1929"
+       y2="68.516502"
+       id="linearGradient3551"
+       xlink:href="#linearGradient3220"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,-1,0,84)" />
+    <linearGradient
+       x1="15.999999"
+       y1="85.0625"
+       x2="20.178572"
+       y2="85.0625"
+       id="linearGradient3556"
+       xlink:href="#linearGradient3376"
+       gradientUnits="userSpaceOnUse" />
+    <radialGradient
+       cx="18.089285"
+       cy="85.0625"
+       r="2.0892856"
+       fx="18.089285"
+       fy="85.0625"
+       id="radialGradient3558"
+       xlink:href="#linearGradient3733"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,1.0042736,0,-0.3635233)" />
+    <linearGradient
+       x1="67.071426"
+       y1="80"
+       x2="67.071426"
+       y2="88.011475"
+       id="linearGradient4231"
+       xlink:href="#linearGradient4225"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(-2,0)" />
+    <linearGradient
+       x1="67.071426"
+       y1="80"
+       x2="67.071426"
+       y2="88.011475"
+       id="linearGradient4239"
+       xlink:href="#linearGradient3737"
+       gradientUnits="userSpaceOnUse" />
+    <clipPath
+       id="clipPath3306">
+      <rect
+         width="72"
+         height="60"
+         rx="4"
+         ry="4"
+         x="12"
+         y="12"
+         id="rect3308"
+         style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    </clipPath>
+    <linearGradient
+       x1="15.656256"
+       y1="69.394279"
+       x2="46.594883"
+       y2="39.82095"
+       id="linearGradient3540"
+       xlink:href="#linearGradient3220"
+       gradientUnits="userSpaceOnUse" />
+    <filter
+       x="-0.12267826"
+       y="-0.17991199"
+       width="1.2453564"
+       height="1.3598239"
+       color-interpolation-filters="sRGB"
+       id="filter3642">
+      <feGaussianBlur
+         id="feGaussianBlur3644"
+         stdDeviation="3.178304" />
+    </filter>
+    <linearGradient
+       id="linearGradient3767">
+      <stop
+         id="stop3769"
+         style="stop-color:#4d4d4d;stop-opacity:0.70731705"
+         offset="0" />
+      <stop
+         id="stop3771"
+         style="stop-color:#4d4d4d;stop-opacity:0.25203252"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="32.251034"
+       y1="6.1317081"
+       x2="32.251034"
+       y2="90.238609"
+       id="linearGradient3721"
+       xlink:href="#ButtonShadow-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(0,-97)" />
+    <linearGradient
+       x1="45.447727"
+       y1="92.539597"
+       x2="45.447727"
+       y2="7.0165396"
+       id="ButtonShadow-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0058652,0,0,0.994169,100,0)">
+      <stop
+         id="stop3750-8"
+         style="stop-color:#000000;stop-opacity:1"
+         offset="0" />
+      <stop
+         id="stop3752-5"
+         style="stop-color:#000000;stop-opacity:0.58823532"
+         offset="1" />
+    </linearGradient>
+    <linearGradient
+       x1="32.251034"
+       y1="6.1317081"
+       x2="32.251034"
+       y2="90.238609"
+       id="linearGradient3725"
+       xlink:href="#ButtonShadow-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)" />
+    <linearGradient
+       x1="32.251034"
+       y1="6.1317081"
+       x2="32.251034"
+       y2="90.238609"
+       id="linearGradient3772"
+       xlink:href="#ButtonShadow-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)" />
+    <linearGradient
+       x1="32.251034"
+       y1="6.1317081"
+       x2="32.251034"
+       y2="90.238609"
+       id="linearGradient3780"
+       xlink:href="#ButtonShadow-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)" />
+    <linearGradient
+       x1="32.251034"
+       y1="6.1317081"
+       x2="32.251034"
+       y2="90.238609"
+       id="linearGradient3039"
+       xlink:href="#ButtonShadow-0"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.0238095,0,0,1.0119048,-1.1428571,-98.071429)" />
+    <linearGradient
+       x1="50"
+       y1="62"
+       x2="50"
+       y2="20"
+       id="linearGradient3949"
+       xlink:href="#linearGradient3767"
+       gradientUnits="userSpaceOnUse" />
+    <clipPath
+       id="clipPath3980">
+      <path
+         d="m -84,12 c -2.216,0 -4,1.784 -4,4 l 0,52 c 0,2.216 1.784,4 4,4 l 64,0 c 2.216,0 4,-1.784 4,-4 l 0,-52 c 0,-2.216 -1.784,-4 -4,-4 l -64,0 z m 32,8 c 8.413849,0 15.809201,3.796888 20.09375,9.53125 l -3.71875,1.875 -11.71875,5.90625 A 1.1937775,1.1937775 0 0 0 -47.5625,37.5 c -1.095677,-1.06642 -2.667782,-1.75 -4.4375,-1.75 -3.313708,0 -6,2.350506 -6,5.25 0,2.899494 2.686292,5.25 6,5.25 1.752367,0 3.311852,-0.6705 4.40625,-1.71875 a 1.1937775,1.1937775 0 0 0 0.25,0.15625 l 11.71875,5.90625 3.71875,1.875 C -36.190799,58.203112 -43.586151,62 -52,62 -65.254834,62 -76,52.59798 -76,41 -76,29.40202 -65.254834,20 -52,20 z m 23.78125,10.5 c 4.287187,6.497423 4.287187,14.502577 0,21 l -3.875,-1.96875 L -43.8125,43.625 C -43.301968,42.852783 -43,41.956275 -43,41 c 0,-0.956275 -0.301968,-1.852783 -0.8125,-2.625 l 11.71875,-5.90625 3.875,-1.96875 z"
+         id="path3982"
+         style="opacity:0.2;fill:#803300;fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
+    </clipPath>
+    <filter
+       x="-0.21883003"
+       y="-0.26570469"
+       width="1.4376601"
+       height="1.5314094"
+       color-interpolation-filters="sRGB"
+       id="filter3988">
+      <feGaussianBlur
+         id="feGaussianBlur3990"
+         stdDeviation="4.649832" />
+    </filter>
+  </defs>
+  <g
+     id="layer2"
+     style="display:none">
+    <rect
+       width="86"
+       height="85"
+       rx="6"
+       ry="6"
+       x="5"
+       y="7"
+       id="rect3745"
+       style="opacity:0.9;fill:url(#ButtonShadow);fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter3174)" />
+  </g>
+  <g
+     id="layer5"
+     style="display:inline">
+    <path
+       d="m 12,-95.03125 c -5.5110903,0 -10.03125,4.52016 -10.03125,10.03125 l 0,71 c 0,5.5110902 4.5201598,10.03125 10.03125,10.03125 l 72,0 c 5.51109,0 10.03125,-4.5201597 10.03125,-10.03125 l 0,-71 c 0,-5.51109 -4.52016,-10.03125 -10.03125,-10.03125 l -72,0 z"
+       transform="scale(1,-1)"
+       id="path3786"
+       style="opacity:0.07999998;fill:url(#linearGradient3039);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
+    <path
+       d="m 12,-94.03125 c -4.971633,0 -9.03125,4.059617 -9.03125,9.03125 l 0,71 c 0,4.9716329 4.0596171,9.03125 9.03125,9.03125 l 72,0 c 4.971633,0 9.03125,-4.059617 9.03125,-9.03125 l 0,-71 c 0,-4.971633 -4.059617,-9.03125 -9.03125,-9.03125 l -72,0 z"
+       transform="scale(1,-1)"
+       id="path3778"
+       style="opacity:0.1;fill:url(#linearGradient3780);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
+    <path
+       d="m 12,-93 c -4.4091333,0 -8,3.590867 -8,8 l 0,71 c 0,4.4091333 3.5908667,8 8,8 l 72,0 c 4.409133,0 8,-3.5908667 8,-8 l 0,-71 c 0,-4.409133 -3.590867,-8 -8,-8 l -72,0 z"
+       transform="scale(1,-1)"
+       id="path3770"
+       style="opacity:0.2;fill:url(#linearGradient3772);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
+    <rect
+       width="86"
+       height="85"
+       rx="7"
+       ry="7"
+       x="5"
+       y="-92"
+       transform="scale(1,-1)"
+       id="rect3723"
+       style="opacity:0.3;fill:url(#linearGradient3725);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
+    <rect
+       width="84"
+       height="84"
+       rx="6"
+       ry="6"
+       x="6"
+       y="-91"
+       transform="scale(1,-1)"
+       id="rect3716"
+       style="opacity:0.45;fill:url(#linearGradient3721);fill-opacity:1;fill-rule:nonzero;stroke:none;display:inline" />
+  </g>
+  <g
+     id="layer1">
+    <path
+       d="M 12,6 C 8.676,6 6,8.676 6,12 l 0,2 0,68 0,2 c 0,0.334721 0.04135,0.6507 0.09375,0.96875 0.0487,0.295596 0.09704,0.596915 0.1875,0.875 0.00988,0.03038 0.020892,0.0636 0.03125,0.09375 0.098865,0.287771 0.2348802,0.547452 0.375,0.8125 0.1445918,0.273507 0.3156161,0.535615 0.5,0.78125 0.1843839,0.245635 0.3737765,0.473472 0.59375,0.6875 0.439947,0.428056 0.94291,0.814526 1.5,1.09375 0.278545,0.139612 0.5734731,0.246947 0.875,0.34375 -0.2562018,-0.100222 -0.4867109,-0.236272 -0.71875,-0.375 -0.00741,-0.0044 -0.023866,0.0045 -0.03125,0 -0.031933,-0.0193 -0.062293,-0.04251 -0.09375,-0.0625 -0.120395,-0.0767 -0.2310226,-0.163513 -0.34375,-0.25 -0.1061728,-0.0808 -0.2132809,-0.161112 -0.3125,-0.25 C 8.4783201,88.557317 8.3087904,88.373362 8.15625,88.1875 8.0486711,88.057245 7.9378561,87.922215 7.84375,87.78125 7.818661,87.74287 7.805304,87.69538 7.78125,87.65625 7.716487,87.553218 7.6510225,87.451733 7.59375,87.34375 7.4927417,87.149044 7.3880752,86.928049 7.3125,86.71875 7.30454,86.69694 7.288911,86.6782 7.28125,86.65625 7.2494249,86.5643 7.2454455,86.469419 7.21875,86.375 7.1884177,86.268382 7.1483606,86.171969 7.125,86.0625 7.0521214,85.720988 7,85.364295 7,85 L 7,83 7,15 7,13 C 7,10.218152 9.2181517,8 12,8 l 2,0 68,0 2,0 c 2.781848,0 5,2.218152 5,5 l 0,2 0,68 0,2 c 0,0.364295 -0.05212,0.720988 -0.125,1.0625 -0.04415,0.206893 -0.08838,0.397658 -0.15625,0.59375 -0.0077,0.02195 -0.0233,0.04069 -0.03125,0.0625 -0.06274,0.173739 -0.138383,0.367449 -0.21875,0.53125 -0.04158,0.0828 -0.07904,0.169954 -0.125,0.25 -0.0546,0.09721 -0.126774,0.18835 -0.1875,0.28125 -0.09411,0.140965 -0.204921,0.275995 -0.3125,0.40625 -0.143174,0.17445 -0.303141,0.346998 -0.46875,0.5 -0.01117,0.0102 -0.01998,0.02115 -0.03125,0.03125 -0.138386,0.125556 -0.285091,0.234436 -0.4375,0.34375 -0.102571,0.07315 -0.204318,0.153364 -0.3125,0.21875 -0.0074,0.0045 -0.02384,-0.0044 -0.03125,0 -0.232039,0.138728 -0.462548,0.274778 -0.71875,0.375 0.301527,-0.0968 0.596455,-0.204138 0.875,-0.34375 0.55709,-0.279224 1.060053,-0.665694 1.5,-1.09375 0.219973,-0.214028 0.409366,-0.441865 0.59375,-0.6875 0.184384,-0.245635 0.355408,-0.507743 0.5,-0.78125 0.14012,-0.265048 0.276135,-0.524729 0.375,-0.8125 0.01041,-0.03078 0.02133,-0.06274 0.03125,-0.09375 0.09046,-0.278085 0.1388,-0.579404 0.1875,-0.875 C 89.95865,84.6507 90,84.334721 90,84 l 0,-2 0,-68 0,-2 C 90,8.676 87.324,6 84,6 L 12,6 z"
+       id="rect3728"
+       style="opacity:0.5;fill:url(#linearGradient3188);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <path
+       d="M 90,64.1875 90,84 c 0,3.324 -2.676,6 -6,6 L 12,90 C 8.676,90 6,87.324 6,84 l 0,-19.8125 84,0 z"
+       id="rect3243"
+       style="fill:#cacaca;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <path
+       d="m 90.030615,64.1875 0,19.8125 c 0,3.324 -2.676,6 -6,6 L 64,90 l 0,-25.8125 26.030615,0 z"
+       id="path3285"
+       style="opacity:0.8;fill:url(#linearGradient3287);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <path
+       d="M 6,64.1875 6,84 c 0,3.324 2.676,6 6,6 l 20,0 0,-25.8125 -26,0 z"
+       id="path3263"
+       style="opacity:0.8;fill:url(#linearGradient3279);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <path
+       d="M 90,64.1875 90,84 c 0,3.324 -2.676,6 -6,6 L 12,90 C 8.676,90 6,87.324 6,84 l 0,-19.8125 84,0 z"
+       id="path3299"
+       style="opacity:0.2;fill:url(#linearGradient3460);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <g
+       id="g3318">
+      <path
+         d="m 20.178571,85.0625 a 2.0892856,2.0982144 0 1 1 -4.178572,0 2.0892856,2.0982144 0 1 1 4.178572,0 z"
+         transform="matrix(0,1.6709402,1.6638297,0,-122.03844,53.282815)"
+         id="path3374"
+         style="fill:url(#linearGradient3556);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+      <path
+         d="m 20.178571,85.0625 a 2.0892856,2.0982144 0 1 1 -4.178572,0 2.0892856,2.0982144 0 1 1 4.178572,0 z"
+         transform="matrix(1.1923077,0,0,1.1872339,-2.0769275,-17.480158)"
+         id="path3364"
+         style="fill:url(#radialGradient3558);fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.84049988;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.53181823;stroke-dasharray:none;stroke-dashoffset:0" />
+    </g>
+    <path
+       d="m 57,79.5 c -0.817559,0 -1.5,0.682441 -1.5,1.5 l 0,6 c 0,0.817559 0.682441,1.5 1.5,1.5 0.817559,0 1.5,-0.682441 1.5,-1.5 l 0,-6 c 0,-0.817559 -0.682441,-1.5 -1.5,-1.5 z m 4,0 c -0.817559,0 -1.5,0.682441 -1.5,1.5 l 0,6 c 0,0.817559 0.682441,1.5 1.5,1.5 0.817559,0 1.5,-0.682441 1.5,-1.5 l 0,-6 c 0,-0.817559 -0.682441,-1.5 -1.5,-1.5 z m 4,0 c -0.817559,0 -1.5,0.682441 -1.5,1.5 l 0,6 c 0,0.817559 0.682441,1.5 1.5,1.5 0.817559,0 1.5,-0.682441 1.5,-1.5 l 0,-6 c 0,-0.817559 -0.682441,-1.5 -1.5,-1.5 z m 4,0 c -0.817559,0 -1.5,0.682441 -1.5,1.5 l 0,6 c 0,0.817559 0.682441,1.5 1.5,1.5 0.817559,0 1.5,-0.682441 1.5,-1.5 l 0,-6 c 0,-0.817559 -0.682441,-1.5 -1.5,-1.5 z m 4,0 c -0.817559,0 -1.5,0.682441 -1.5,1.5 l 0,6 c 0,0.817559 0.682441,1.5 1.5,1.5 0.817559,0 1.5,-0.682441 1.5,-1.5 l 0,-6 c 0,-0.817559 -0.682441,-1.5 -1.5,-1.5 z m 4,0 c -0.817559,0 -1.5,0.682441 -1.5,1.5 l 0,6 c 0,0.817559 0.682441,1.5 1.5,1.5 0.817559,0 1.5,-0.682441 1.5,-1.5 l 0,-6 c 0,-0.817559 -0.682441,-1.5 -1.5,-1.5 z m 4,0 c -0.817559,0 -1.5,0.682441 -1.5,1.5 l 0,6 c 0,0.817559 0.682441,1.5 1.5,1.5 0.817559,0 1.5,-0.682441 1.5,-1.5 l 0,-6 c 0,-0.817559 -0.682441,-1.5 -1.5,-1.5 z"
+       transform="matrix(1,0,0,-1,-2,168)"
+       id="path4237"
+       style="fill:url(#linearGradient4239);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <path
+       d="m 55,80 c -0.554,0 -1,0.446 -1,1 l 0,6 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 l 0,-6 c 0,-0.554 -0.446,-1 -1,-1 z m 4,0 c -0.554,0 -1,0.446 -1,1 l 0,6 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 l 0,-6 c 0,-0.554 -0.446,-1 -1,-1 z m 4,0 c -0.554,0 -1,0.446 -1,1 l 0,6 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 l 0,-6 c 0,-0.554 -0.446,-1 -1,-1 z m 4,0 c -0.554,0 -1,0.446 -1,1 l 0,6 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 l 0,-6 c 0,-0.554 -0.446,-1 -1,-1 z m 4,0 c -0.554,0 -1,0.446 -1,1 l 0,6 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 l 0,-6 c 0,-0.554 -0.446,-1 -1,-1 z m 4,0 c -0.554,0 -1,0.446 -1,1 l 0,6 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 l 0,-6 c 0,-0.554 -0.446,-1 -1,-1 z m 4,0 c -0.554,0 -1,0.446 -1,1 l 0,6 c 0,0.554 0.446,1 1,1 0.554,0 1,-0.446 1,-1 l 0,-6 c 0,-0.554 -0.446,-1 -1,-1 z"
+       id="rect4210"
+       style="fill:url(#linearGradient4231);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+  </g>
+  <g
+     id="layer3"
+     style="display:inline">
+    <rect
+       width="84"
+       height="72"
+       rx="6"
+       ry="6"
+       x="6"
+       y="6"
+       id="rect3171"
+       style="fill:url(#linearGradient3179);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <path
+       d="M 12,78 C 8.676,78 6,75.324 6,72 L 6,12 C 6,8.676 8.676,6 12,6 l 72,0 c 3.324,0 6,2.676 6,6 l 0,60 c 0,3.324 -2.676,6 -6,6 l -72,0 z m 0,-2 72,0 c 2.781848,0 5,-2.195392 5,-4.9375 l 0,-59.125 C 89,9.195393 86.781848,6.999999 84,7 L 12,7 C 9.2181517,7 7,9.195389 7,11.9375 l 0,59.125 C 7,73.804608 9.2181517,76 12,76 z"
+       id="rect3213"
+       style="opacity:0.7;fill:url(#linearGradient3551);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <rect
+       width="72"
+       height="60"
+       rx="4"
+       ry="4"
+       x="-88"
+       y="12"
+       id="rect3398"
+       style="opacity:0.2;fill:#803300;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <path
+       d="m 90,72 0,1 c 0,3.324 -2.676,6 -6,6 L 12,79 C 8.676,79 6,76.324 6,73 l 0,-1 c 0,2.984862 2.152831,5.43487 5,5.90625 C 11.326884,77.971636 11.652269,78 12,78 l 72,0 c 0.166304,0 0.337194,-0.01811 0.5,-0.03125 0.04161,-0.0041 0.08371,0.0051 0.125,0 C 84.752873,77.95584 84.874673,77.927 85,77.90625 87.847169,77.43487 90,74.984862 90,72 z"
+       id="path3443"
+       style="opacity:0.1;fill:url(#linearGradient3454);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <rect
+       width="54.464287"
+       height="34.82143"
+       rx="9"
+       ry="9"
+       x="13.306199"
+       y="13.887781"
+       transform="matrix(1.0880985,0,0,1.1015333,-1.1722568,-1.4100719)"
+       id="rect2399"
+       style="opacity:0.15;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;filter:url(#filter3179)" />
+    <rect
+       width="74"
+       height="63"
+       rx="4.1111112"
+       ry="4.1999998"
+       x="11"
+       y="11"
+       id="rect3492"
+       style="opacity:0.6;fill:url(#linearGradient3527);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <rect
+       width="72"
+       height="60"
+       rx="4"
+       ry="4"
+       x="12"
+       y="12"
+       id="rect3519"
+       style="fill:url(#linearGradient3547);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <path
+       d="m 16,12 c -2.216,0 -4,1.784 -4,4 l 0,52 c 0,2.216 1.784,4 4,4 l 64,0 c 2.216,0 4,-1.784 4,-4 l 0,-52 c 0,-2.216 -1.784,-4 -4,-4 l -64,0 z m 0,0.125 64,0 c 1.639964,0 2.9375,1.297536 2.9375,2.9375 l 0,52 C 82.9375,68.702464 81.639964,70 80,70 l -64,0 c -1.639964,0 -2.9375,-1.297536 -2.9375,-2.9375 l 0,-52 c 0,-1.639964 1.297536,-2.9375 2.9375,-2.9375 z"
+       id="rect3490"
+       style="opacity:0.5;fill:url(#linearGradient3517);fill-opacity:1;fill-rule:nonzero;stroke:none" />
+    <path
+       d="M 64.466651,70.746186 C 32.862441,69.262986 28.526172,59.329842 49.62534,36.936323 25.752355,44.487871 14.457963,55.107187 6.0678887,62.348022 -2.8433524,70.106028 5.5386893,80.117302 15.341349,79.28586 25.500218,79.279131 56.36182,77.407002 64.466651,70.746186 z"
+       transform="matrix(1.1165614,0,0,1.1165614,-0.2667296,-9.2473368)"
+       clip-path="url(#clipPath3306)"
+       id="path3295"
+       style="opacity:0.4;fill:url(#linearGradient3540);fill-opacity:1;fill-rule:evenodd;stroke:none;filter:url(#filter3642)" />
+  </g>
+  <g
+     id="layer4"
+     style="display:inline">
+    <path
+       d="m -52,20 c -13.254834,0 -24,9.40202 -24,21 0,11.59798 10.745166,21 24,21 8.413849,0 15.809201,-3.796888 20.09375,-9.53125 l -3.71875,-1.875 -11.71875,-5.90625 a 1.1937775,1.1937775 0 0 1 -0.25,-0.15625 C -48.688148,45.5795 -50.247633,46.25 -52,46.25 c -3.313708,0 -6,-2.350506 -6,-5.25 0,-2.899494 2.686292,-5.25 6,-5.25 1.769718,0 3.341823,0.68358 4.4375,1.75 a 1.1937775,1.1937775 0 0 1 0.21875,-0.1875 l 11.71875,-5.90625 3.71875,-1.875 C -36.190799,23.796888 -43.586151,20 -52,20 z m 23.78125,10.5 -3.875,1.96875 L -43.8125,38.375 C -43.301968,39.147217 -43,40.043725 -43,41 c 0,0.956275 -0.301968,1.852783 -0.8125,2.625 l 11.71875,5.90625 3.875,1.96875 c 4.287187,-6.497423 4.287187,-14.502577 0,-21 z"
+       transform="translate(100,0)"
+       clip-path="url(#clipPath3980)"
+       id="path3976"
+       style="opacity:0.8;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;filter:url(#filter3988);enable-background:accumulate" />
+    <path
+       d="m -32,44 a 20,20 0 1 1 -40,0 20,20 0 1 1 40,0 z"
+       transform="matrix(1.2,0,0,1.2,110.4,79.2)"
+       id="path3067"
+       style="opacity:0.2;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <path
+       d="m 48,-52 c -13.254834,0 -24,10.745166 -24,24 0,13.254834 10.745166,24 24,24 8.779607,0 16.472071,-4.714728 20.65625,-11.75 L 48,-28 60,-48.78125 C 56.468281,-50.825886 52.374439,-52 48,-52 z"
+       id="path3077"
+       style="opacity:0.2;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <path
+       d="m -32,44 a 20,20 0 0 1 -2.679492,10 L -52,44 z"
+       transform="matrix(1.2,0,0,1.2,116.4,-79.8)"
+       id="path3079"
+       style="opacity:0.2;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <path
+       d="M -32,44 A 20,20 0 0 1 -42.000001,61.320509 L -52,44 z"
+       transform="matrix(0.6,-1.0392305,1.0392305,0.6,36.473859,-109.43998)"
+       id="path3081"
+       style="opacity:0.2;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <path
+       d="m 48,20 c -13.254834,0 -24,9.40202 -24,21 0,11.59798 10.745166,21 24,21 8.413849,0 15.809201,-3.796888 20.09375,-9.53125 L 64.375,50.59375 52.65625,44.6875 a 1.1937775,1.1937775 0 0 1 -0.25,-0.15625 C 51.311852,45.5795 49.752367,46.25 48,46.25 c -3.313708,0 -6,-2.350506 -6,-5.25 0,-2.899494 2.686292,-5.25 6,-5.25 1.769718,0 3.341823,0.68358 4.4375,1.75 a 1.1937775,1.1937775 0 0 1 0.21875,-0.1875 l 11.71875,-5.90625 3.71875,-1.875 C 63.809201,23.796888 56.413849,20 48,20 z m 23.78125,10.5 -3.875,1.96875 L 56.1875,38.375 C 56.698032,39.147217 57,40.043725 57,41 c 0,0.956275 -0.301968,1.852783 -0.8125,2.625 l 11.71875,5.90625 3.875,1.96875 c 4.287187,-6.497423 4.287187,-14.502577 0,-21 z"
+       id="path3942"
+       style="color:#000000;fill:url(#linearGradient3949);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <path
+       d="m 138,18 c -13.25483,0 -24,10.745166 -24,24 0,13.254834 10.74517,24 24,24 8.88039,0 16.63051,-4.830383 20.78125,-12 L 143.1875,45 c -1.03744,1.793371 -2.96668,3 -5.1875,3 -3.31371,0 -6,-2.686292 -6,-6 0,-3.313708 2.68629,-6 6,-6 2.22082,0 4.15006,1.206629 5.1875,3 l 15.59375,-9 C 154.63051,22.830383 146.88039,18 138,18 z m 21.625,13.59375 c 0.19952,0.414861 0.38818,0.826993 0.5625,1.25 -0.17414,-0.421436 -0.36545,-0.841049 -0.5625,-1.25 z m 1.5625,4.25 c 0.0876,0.329849 0.17672,0.667508 0.25,1 -0.0742,-0.339414 -0.16156,-0.666127 -0.25,-1 z m 0.75,4.59375 C 161.97099,40.954608 162,41.482051 162,42 c 0,-0.52061 -0.0298,-1.050133 -0.0625,-1.5625 z M 162,42 c 0,0.517949 -0.029,1.045392 -0.0625,1.5625 C 161.97015,43.050133 162,42.52061 162,42 z m -0.5625,5.15625 c -0.0733,0.332492 -0.1624,0.670151 -0.25,1 0.0884,-0.333873 0.17576,-0.660586 0.25,-1 z m -1.25,4 c -0.17432,0.423007 -0.36298,0.835139 -0.5625,1.25 0.19705,-0.408951 0.38836,-0.828564 0.5625,-1.25 z"
+       id="path3893"
+       style="opacity:0.2;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <path
+       d="m 163.78125,30 -15.59375,9 c 0.51053,0.882534 0.8125,1.907114 0.8125,3 0,1.092886 -0.30197,2.117466 -0.8125,3 l 15.59375,9 c 4.28719,-7.425626 4.28719,-16.574374 0,-24 z"
+       id="path3895"
+       style="opacity:0.2;color:#000000;fill:#ff0000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <path
+       d="m 48,20 c -13.254834,0 -24,9.40202 -24,21 0,0.16555 -0.0044,0.335366 0,0.5 C 24.300722,30.130813 34.934366,21 48,21 c 8.06011,0 15.179802,3.478436 19.53125,8.8125 l 0.5625,-0.28125 C 63.809201,23.796888 56.413849,20 48,20 z m 23.78125,10.5 -3.875,1.96875 L 56.1875,38.375 c 0.163522,0.247339 0.288591,0.510529 0.40625,0.78125 l 11.3125,-5.6875 3.875,-1.96875 c 2.043817,3.097497 3.092368,6.543894 3.1875,10 0.10442,-3.793549 -0.94413,-7.600074 -3.1875,-11 z m -14.8125,11 c -0.0843,0.771567 -0.359319,1.486798 -0.78125,2.125 l 0.40625,0.21875 C 56.843435,43.269253 57,42.649983 57,42 c 0,-0.165958 -0.01355,-0.33798 -0.03125,-0.5 z m -14.9375,0.03125 C 42.015242,41.687577 42,41.840028 42,42 c 0,2.899494 2.686292,5.25 6,5.25 1.752367,0 3.311852,-0.6705 4.40625,-1.71875 a 1.1937775,1.1937775 0 0 0 0.25,0.15625 l 11.71875,5.90625 3.15625,1.59375 c 0.190975,-0.234099 0.382367,-0.477663 0.5625,-0.71875 L 64.375,50.59375 52.65625,44.6875 a 1.1937775,1.1937775 0 0 1 -0.25,-0.15625 C 51.311852,45.5795 49.752367,46.25 48,46.25 c -3.106601,0 -5.66149,-2.071406 -5.96875,-4.71875 z"
+       id="path3952"
+       style="opacity:0.4;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+  </g>
+</svg>
Add a comment to this file

src/vasm/data/gui_desktop.png

Added
New image
Add a comment to this file

src/vasm/data/harddisk.png

Added
New image
Add a comment to this file

src/vasm/data/hardinfo.png

Added
New image
Add a comment to this file

src/vasm/data/icons/bootmenu.png

Removed
Old image
Add a comment to this file

src/vasm/data/icons/bootmode.png

Removed
Old image
Add a comment to this file

src/vasm/data/icons/category_graphical_environment.png

Removed
Old image
Add a comment to this file

src/vasm/data/icons/category_hardware.png

Removed
Old image
Add a comment to this file

src/vasm/data/icons/category_networking.png

Removed
Old image
Add a comment to this file

src/vasm/data/icons/category_personal.png

Removed
Old image
Add a comment to this file

src/vasm/data/icons/category_startup_options.png

Removed
Old image
Add a comment to this file

src/vasm/data/icons/category_system.png

Removed
Old image
Add a comment to this file

src/vasm/data/icons/category_unknown.png

Removed
Old image
Add a comment to this file

src/vasm/data/icons/datetime.png

Removed
Old image
Add a comment to this file

src/vasm/data/icons/gdmconfig.png

Removed
Old image
Add a comment to this file

src/vasm/data/icons/gparted.svg

Removed
Old image
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   version="1.0"
-   width="96"
-   height="96"
-   id="svg2408">
-  <defs
-     id="defs2410">
-    <linearGradient
-       id="linearGradient3733">
-      <stop
-         id="stop3735"
-         style="stop-color:#ffbf67;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3737"
-         style="stop-color:#c70000;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4327">
-      <stop
-         id="stop4329"
-         style="stop-color:#f0f0f0;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4331"
-         style="stop-color:#b4b4b4;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient4225">
-      <stop
-         id="stop4227"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop4229"
-         style="stop-color:#484848;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3322">
-      <stop
-         id="stop3324"
-         style="stop-color:#7a7a7a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3326"
-         style="stop-color:#f9f9f9;stop-opacity:1"
-         offset="0.2032043" />
-      <stop
-         id="stop3328"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="0.42969123" />
-      <stop
-         id="stop3330"
-         style="stop-color:#dedede;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3448">
-      <stop
-         id="stop3450"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3452"
-         style="stop-color:#000000;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3376">
-      <stop
-         id="stop3378"
-         style="stop-color:#767676;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3380"
-         style="stop-color:#fdfdfd;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3273">
-      <stop
-         id="stop3275"
-         style="stop-color:#7a7a7a;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3281"
-         style="stop-color:#f9f9f9;stop-opacity:1"
-         offset="0.14636412" />
-      <stop
-         id="stop3283"
-         style="stop-color:#c9c9c9;stop-opacity:1"
-         offset="0.37253973" />
-      <stop
-         id="stop3277"
-         style="stop-color:#dedede;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3220">
-      <stop
-         id="stop3222"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3224"
-         style="stop-color:#bfbfbf;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3173">
-      <stop
-         id="stop3175"
-         style="stop-color:#e6e6e6;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3189"
-         style="stop-color:#c3c3c3;stop-opacity:1"
-         offset="0.26003402" />
-      <stop
-         id="stop3187"
-         style="stop-color:#b9b9b9;stop-opacity:1"
-         offset="0.49180263" />
-      <stop
-         id="stop3191"
-         style="stop-color:#c8c8c8;stop-opacity:1"
-         offset="0.75914466" />
-      <stop
-         id="stop3177"
-         style="stop-color:#e6e6e6;stop-opacity:1"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="45.447727"
-       y1="92.539597"
-       x2="45.447727"
-       y2="7.0165396"
-       id="ButtonShadow"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="scale(1.0058652,0.994169)">
-      <stop
-         id="stop3750"
-         style="stop-color:#000000;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3752"
-         style="stop-color:#000000;stop-opacity:0.58823532"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       id="linearGradient3737">
-      <stop
-         id="stop3739"
-         style="stop-color:#ffffff;stop-opacity:1"
-         offset="0" />
-      <stop
-         id="stop3741"
-         style="stop-color:#ffffff;stop-opacity:0"
-         offset="1" />
-    </linearGradient>
-    <filter
-       x="-0.29508197"
-       y="-0.46153846"
-       width="1.5901639"
-       height="1.9230769"
-       color-interpolation-filters="sRGB"
-       id="filter3179">
-      <feGaussianBlur
-         id="feGaussianBlur3181"
-         stdDeviation="6.6964288" />
-    </filter>
-    <filter
-       color-interpolation-filters="sRGB"
-       id="filter3174">
-      <feGaussianBlur
-         id="feGaussianBlur3176"
-         stdDeviation="1.71" />
-    </filter>
-    <linearGradient
-       x1="36.357143"
-       y1="6"
-       x2="36.357143"
-       y2="63.893143"
-       id="linearGradient3188"
-       xlink:href="#linearGradient3737"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="-1.857143"
-       y1="86.214287"
-       x2="88"
-       y2="8.6071424"
-       id="linearGradient3179"
-       xlink:href="#linearGradient3173"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="6"
-       y1="77.09375"
-       x2="32"
-       y2="77.09375"
-       id="linearGradient3279"
-       xlink:href="#linearGradient3322"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="6"
-       y1="77.09375"
-       x2="32.030617"
-       y2="77.09375"
-       id="linearGradient3287"
-       xlink:href="#linearGradient3273"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,1,96.030615,0)" />
-    <linearGradient
-       x1="6"
-       y1="75.5"
-       x2="45.219246"
-       y2="75.5"
-       id="linearGradient3454"
-       xlink:href="#linearGradient3448"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(-1,0,0,1,96,0)" />
-    <linearGradient
-       x1="48"
-       y1="77.09375"
-       x2="48"
-       y2="90"
-       id="linearGradient3460"
-       xlink:href="#linearGradient3448"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="41.041885"
-       y1="72"
-       x2="48"
-       y2="19.160589"
-       id="linearGradient3517"
-       xlink:href="#linearGradient3737"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="38.765545"
-       y1="73"
-       x2="38.765545"
-       y2="-60.29591"
-       id="linearGradient3527"
-       xlink:href="#linearGradient3448"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.0277778,0,0,1.0499999,-0.3055556,-2.6499999)" />
-    <linearGradient
-       x1="44.324883"
-       y1="12"
-       x2="44.324883"
-       y2="72.11245"
-       id="linearGradient3547"
-       xlink:href="#linearGradient4327"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="18.742928"
-       y1="8.046936"
-       x2="109.1929"
-       y2="68.516502"
-       id="linearGradient3551"
-       xlink:href="#linearGradient3220"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,-1,0,84)" />
-    <linearGradient
-       x1="15.999999"
-       y1="85.0625"
-       x2="20.178572"
-       y2="85.0625"
-       id="linearGradient3556"
-       xlink:href="#linearGradient3376"
-       gradientUnits="userSpaceOnUse" />
-    <radialGradient
-       cx="18.089285"
-       cy="85.0625"
-       r="2.0892856"
-       fx="18.089285"
-       fy="85.0625"
-       id="radialGradient3558"
-       xlink:href="#linearGradient3733"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,0,0,1.0042736,0,-0.3635233)" />
-    <linearGradient
-       x1="67.071426"
-       y1="80"
-       x2="67.071426"
-       y2="88.011475"
-       id="linearGradient4231"
-       xlink:href="#linearGradient4225"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-2,0)" />
-    <linearGradient
-       x1="67.071426"
-       y1="80"
-       x2="67.071426"
-       y2="88.011475"
-       id="linearGradient4239"
-       xlink:href="#linearGradient3737"
-       gradientUnits="userSpaceOnUse" />
-    <clipPath
-       id="clipPath3306">
-      <rect
-         width="72"
-         height="60"
-         rx="4"
-         ry="4"
-         x="12"
<