summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorintrigeri <intrigeri@boum.org>2016-12-31 10:00:06 +0000
committerintrigeri <intrigeri@boum.org>2016-12-31 10:00:06 +0000
commit7158737a124c82a01ab66dc0fd28ad657affed1e (patch)
tree8ecb6b021244e85dbe72b6d9d5825b14fcbeb272
parentf1100bb9bc539e0717d5b171b711f6e9b7cd7fd9 (diff)
parent5eba694cf3e27ea8ef476305c6d6ff40ee22f292 (diff)
Merge branch 'feature/stretch' into feature/11916-stretch-docfeature/11916-stretch-doc
-rw-r--r--config/chroot_apt/preferences8
-rwxr-xr-x[-rw-r--r--]config/chroot_local-hooks/11-localize_browser0
-rwxr-xr-x[-rw-r--r--]config/chroot_local-hooks/30-disable-wayland-in-gdm0
-rwxr-xr-xconfig/chroot_local-hooks/31-lower-DefaultTimeoutStopSec9
-rwxr-xr-xconfig/chroot_local-hooks/98-remove_unwanted_packages2
-rw-r--r--config/chroot_local-includes/etc/dconf/db/local.d/00_Tails_defaults11
-rw-r--r--config/chroot_local-includes/etc/ferm/ferm.conf2
-rw-r--r--config/chroot_local-includes/etc/skel/.config/Trolltech.conf2
-rw-r--r--config/chroot_local-includes/usr/share/gdm/dconf/50-tails5
-rwxr-xr-xconfig/chroot_local-includes/usr/share/initramfs-tools/scripts/init-top/memory_wipe5
-rw-r--r--config/chroot_local-packageslists/tails-common.list7
l---------config/chroot_sources/jessie.binary1
-rw-r--r--config/chroot_sources/jessie.chroot2
-rw-r--r--features/domains/fs_share.xml6
-rw-r--r--features/gnome.feature4
-rw-r--r--features/images/GitCloneDone.pngbin2974 -> 1741 bytes
-rw-r--r--features/images/GnomeEditMenu.pngbin409 -> 393 bytes
-rw-r--r--features/images/GpgAppletManageKeys.pngbin1494 -> 1107 bytes
-rw-r--r--features/images/GtkFileChooserDesktopButton.pngbin1684 -> 1337 bytes
-rw-r--r--features/images/PidginAccountManagerAddButton.pngbin939 -> 808 bytes
-rw-r--r--features/images/PidginAccountManagerCloseButton.pngbin892 -> 854 bytes
-rw-r--r--features/images/PidginAccountWindow.pngbin1385 -> 898 bytes
-rw-r--r--features/images/PidginAddAccountProtocolLabel.pngbin2057 -> 1510 bytes
-rw-r--r--features/images/PidginAddAccountProtocolXMPP.pngbin1337 -> 1334 bytes
-rw-r--r--features/images/PidginAddAccountWindow.pngbin1534 -> 921 bytes
-rw-r--r--features/images/PidginAddAccountXMPPAddButton.pngbin911 -> 788 bytes
-rw-r--r--features/images/PidginAddAccountXMPPAdvancedTab.pngbin1539 -> 912 bytes
-rw-r--r--features/images/PidginAddAccountXMPPConnectServer.pngbin1639 -> 1154 bytes
-rw-r--r--features/images/PidginAddAccountXMPPDomain.pngbin1181 -> 889 bytes
-rw-r--r--features/images/PidginAddAccountXMPPPassword.pngbin1495 -> 1080 bytes
-rw-r--r--features/images/PidginAddAccountXMPPRememberPassword.pngbin2141 -> 1550 bytes
-rw-r--r--features/images/PidginAddAccountXMPPUsername.pngbin1282 -> 963 bytes
-rw-r--r--features/images/PidginAvailableStatus.pngbin1792 -> 1616 bytes
-rw-r--r--features/images/PidginBuddiesMenu.pngbin928 -> 731 bytes
-rw-r--r--features/images/PidginBuddiesMenuJoinChat.pngbin1045 -> 871 bytes
-rw-r--r--features/images/PidginCertificateAddButton.pngbin545 -> 546 bytes
-rw-r--r--features/images/PidginCertificateImportFailed.pngbin3741 -> 1953 bytes
-rw-r--r--features/images/PidginCertificateManagerDialog.pngbin2472 -> 1259 bytes
-rw-r--r--features/images/PidginCertificateTestItem.pngbin803 -> 384 bytes
-rw-r--r--features/images/PidginCertificatesMenuItem.pngbin1254 -> 934 bytes
-rw-r--r--features/images/PidginConversationOTRMenu.pngbin1179 -> 971 bytes
-rw-r--r--features/images/PidginConversationWindowMenuBar.pngbin3145 -> 2346 bytes
-rw-r--r--features/images/PidginFriendExpectedAnswer.pngbin809 -> 690 bytes
-rw-r--r--features/images/PidginFriendOnline.pngbin1180 -> 1135 bytes
-rw-r--r--features/images/PidginOTRKeyGenPrompt.pngbin2084 -> 1439 bytes
-rw-r--r--features/images/PidginOTRKeyGenPromptDoneButton.pngbin993 -> 845 bytes
-rw-r--r--features/images/PidginOTRMenuStartSession.pngbin1891 -> 1317 bytes
-rw-r--r--features/images/PidginToolsMenu.pngbin567 -> 508 bytes
-rw-r--r--features/images/SeahorseEditPreferences.pngbin987 -> 766 bytes
-rw-r--r--features/images/SeahorseFindKeysWindow.pngbin2389 -> 1266 bytes
-rw-r--r--features/images/SeahorseImport.pngbin1295 -> 1245 bytes
-rw-r--r--features/images/SeahorseKeyResultWindow.pngbin3019 -> 1541 bytes
-rw-r--r--features/images/SeahorsePreferences.pngbin1493 -> 1164 bytes
-rw-r--r--features/images/SeahorseRemoteMenu.pngbin884 -> 706 bytes
-rw-r--r--features/images/SeahorseRemoteMenuFind.pngbin1815 -> 1236 bytes
-rw-r--r--features/images/SeahorseRemoteMenuSync.pngbin2124 -> 1432 bytes
-rw-r--r--features/images/SeahorseSyncKeys.pngbin1738 -> 995 bytes
-rw-r--r--features/images/SeahorseWindow.pngbin2467 -> 1342 bytes
-rw-r--r--features/images/TailsGreeter.pngbin2154 -> 1779 bytes
-rw-r--r--features/images/TailsGreeterAddMoreOptions.pngbin0 -> 220 bytes
-rw-r--r--features/images/TailsGreeterAdditionalSettingsAdd.pngbin0 -> 747 bytes
-rw-r--r--features/images/TailsGreeterAdditionalSettingsDialog.pngbin0 -> 1367 bytes
-rw-r--r--features/images/TailsGreeterAdminPassword.pngbin1940 -> 1280 bytes
-rw-r--r--features/images/TailsGreeterDisableAllNetworking.pngbin2046 -> 852 bytes
-rw-r--r--features/images/TailsGreeterDisableMACSpoofing.pngbin0 -> 939 bytes
-rw-r--r--features/images/TailsGreeterForward.pngbin1455 -> 0 bytes
-rw-r--r--features/images/TailsGreeterLanguage.pngbin610 -> 1254 bytes
-rw-r--r--features/images/TailsGreeterLanguagePopover.pngbin0 -> 492 bytes
-rw-r--r--features/images/TailsGreeterLoginButton.pngbin1108 -> 1360 bytes
-rw-r--r--features/images/TailsGreeterLoginButtonGerman.pngbin1121 -> 1362 bytes
-rw-r--r--features/images/TailsGreeterMACSpoofing.pngbin2242 -> 1723 bytes
-rw-r--r--features/images/TailsGreeterMoreOptions.pngbin1422 -> 0 bytes
-rw-r--r--features/images/TailsGreeterNetworkConnection.pngbin0 -> 1344 bytes
-rw-r--r--features/images/TailsGreeterPersistence.pngbin1399 -> 0 bytes
-rw-r--r--features/images/TailsGreeterPersistencePassphrase.pngbin1145 -> 1151 bytes
-rw-r--r--features/images/TailsGreeterPersistenceUnlocked.pngbin0 -> 2294 bytes
-rw-r--r--features/images/TailsGreeterSpecificTorConfiguration.pngbin0 -> 792 bytes
-rw-r--r--features/images/TailsGreeterTorConf.pngbin6050 -> 0 bytes
-rw-r--r--features/images/TailsGreeterWindowsCamouflage.pngbin4150 -> 0 bytes
-rw-r--r--features/images/UnsafeBrowserDNSError.pngbin4700 -> 4618 bytes
-rw-r--r--features/images/UnsafeBrowserProxySettingsOkButton.pngbin1032 -> 677 bytes
-rw-r--r--features/mac_spoofing.feature3
-rw-r--r--features/mat.feature5
-rw-r--r--features/networking.feature1
-rw-r--r--features/step_definitions/checks.rb27
-rw-r--r--features/step_definitions/common_steps.rb85
-rw-r--r--features/step_definitions/erase_memory.rb17
-rw-r--r--features/step_definitions/gnome.rb8
-rw-r--r--features/step_definitions/icedove.rb2
-rw-r--r--features/step_definitions/mac_spoofing.rb3
-rw-r--r--features/step_definitions/pidgin.rb2
-rw-r--r--features/step_definitions/snapshots.rb2
-rw-r--r--features/step_definitions/ssh.rb2
-rw-r--r--features/step_definitions/totem.rb19
-rw-r--r--features/step_definitions/unsafe_browser.rb3
-rw-r--r--features/step_definitions/untrusted_partitions.rb2
-rw-r--r--features/step_definitions/usb.rb24
-rw-r--r--features/support/helpers/storage_helper.rb32
-rw-r--r--features/torified_browsing.feature2
-rw-r--r--features/torified_gnupg.feature1
-rw-r--r--features/totem.feature19
-rw-r--r--features/usb_upgrade.feature17
-rw-r--r--vagrant/lib/tails_build_settings.rb2
-rwxr-xr-xvagrant/provision/setup-tails-builder1
-rw-r--r--wiki/src/contribute/build.mdwn1
-rw-r--r--wiki/src/contribute/release_process/test/automated_tests.mdwn23
-rw-r--r--wiki/src/news/version_3.0.mdwn2
107 files changed, 151 insertions, 218 deletions
diff --git a/config/chroot_apt/preferences b/config/chroot_apt/preferences
index 4dcb1e2..e5f37ba 100644
--- a/config/chroot_apt/preferences
+++ b/config/chroot_apt/preferences
@@ -23,18 +23,10 @@ Package: icedove* iceowl* calendar-google-provider
Pin: origin deb.tails.boum.org
Pin-Priority: 999
-Package: seahorse-nautilus
-Pin: release o=Debian,n=sid
-Pin-Priority: 999
-
Package: obfs4proxy
Pin: release o=TorProject,n=obfs4proxy
Pin-Priority: 990
-Package: open-vm-tools
-Pin: release o=Debian,n=sid
-Pin-Priority: 999
-
Package: tails-installer
Pin: origin deb.tails.boum.org
Pin-Priority: 999
diff --git a/config/chroot_local-hooks/11-localize_browser b/config/chroot_local-hooks/11-localize_browser
index 419dc81..419dc81 100644..100755
--- a/config/chroot_local-hooks/11-localize_browser
+++ b/config/chroot_local-hooks/11-localize_browser
diff --git a/config/chroot_local-hooks/30-disable-wayland-in-gdm b/config/chroot_local-hooks/30-disable-wayland-in-gdm
index efe4107..efe4107 100644..100755
--- a/config/chroot_local-hooks/30-disable-wayland-in-gdm
+++ b/config/chroot_local-hooks/30-disable-wayland-in-gdm
diff --git a/config/chroot_local-hooks/31-lower-DefaultTimeoutStopSec b/config/chroot_local-hooks/31-lower-DefaultTimeoutStopSec
new file mode 100755
index 0000000..56b9ee6
--- /dev/null
+++ b/config/chroot_local-hooks/31-lower-DefaultTimeoutStopSec
@@ -0,0 +1,9 @@
+#!/bin/sh
+set -e
+set -u
+
+echo "Lower systemd's DefaultTimeoutStopSec"
+
+sed --in-place --regexp-extended \
+ 's/^#DefaultTimeoutStopSec=.*$/DefaultTimeoutStopSec=5s/' \
+ /etc/systemd/system.conf
diff --git a/config/chroot_local-hooks/98-remove_unwanted_packages b/config/chroot_local-hooks/98-remove_unwanted_packages
index 24e7f24..39b4e55 100755
--- a/config/chroot_local-hooks/98-remove_unwanted_packages
+++ b/config/chroot_local-hooks/98-remove_unwanted_packages
@@ -16,7 +16,7 @@ apt-get --yes purge \
'^linux-headers-*' \
'^linux-source-*' \
build-essential debhelper dkms dpatch dpkg-dev \
- gcc gcc-4.8 gcc-4.8-base gcc-4.9 gcc-4.9-base gcc-5 gcc-5-base gcc-6 \
+ gcc gcc-4.8 gcc-4.9 gcc-5 gcc-5-base gcc-6 \
intltool-debian \
libc6-dev libgl1-mesa-dev linux-libc-dev \
make \
diff --git a/config/chroot_local-includes/etc/dconf/db/local.d/00_Tails_defaults b/config/chroot_local-includes/etc/dconf/db/local.d/00_Tails_defaults
index 38fdbf2..629e7da 100644
--- a/config/chroot_local-includes/etc/dconf/db/local.d/00_Tails_defaults
+++ b/config/chroot_local-includes/etc/dconf/db/local.d/00_Tails_defaults
@@ -67,17 +67,12 @@ volumes-visible = false
default-zoom-level = 'small'
[org/gnome/desktop/peripherals/touchpad]
-disable-while-typing = true
-horiz-scroll-enabled = false
-scroll-method = 'two-finger-scrolling'
+natural-scroll = true
tap-to-click = true
+two-finger-scrolling-enabled = true
[org/gnome/settings-daemon/plugins/power]
-button-hibernate = 'shutdown'
-button-power = 'shutdown'
-button-sleep = 'shutdown'
-button-suspend = 'shutdown'
-critical-battery-action = 'shutdown'
+power-button-action = 'nothing'
lid-close-ac-action = 'blank'
lid-close-battery-action = 'blank'
diff --git a/config/chroot_local-includes/etc/ferm/ferm.conf b/config/chroot_local-includes/etc/ferm/ferm.conf
index 7f41489..09504de 100644
--- a/config/chroot_local-includes/etc/ferm/ferm.conf
+++ b/config/chroot_local-includes/etc/ferm/ferm.conf
@@ -82,6 +82,7 @@ domain ip {
# White-list access to the accessibility daemon
daddr 127.0.0.1 proto tcp syn dport 4101 {
mod owner uid-owner $amnesia_uid ACCEPT;
+ mod owner uid-owner Debian-gdm ACCEPT;
}
# White-list access to I2P services for the amnesia user (IRC, SAM, POP3, SMTP, and Monotone)
@@ -204,6 +205,7 @@ domain ip6 {
# White-list access to the accessibility daemon
outerface lo saddr ::1 daddr ::1 proto tcp {
dport 4101 mod owner uid-owner $amnesia_uid ACCEPT;
+ dport 4101 mod owner uid-owner Debian-gdm ACCEPT;
sport 4101 mod state state (ESTABLISHED) ACCEPT;
}
diff --git a/config/chroot_local-includes/etc/skel/.config/Trolltech.conf b/config/chroot_local-includes/etc/skel/.config/Trolltech.conf
new file mode 100644
index 0000000..07637ef
--- /dev/null
+++ b/config/chroot_local-includes/etc/skel/.config/Trolltech.conf
@@ -0,0 +1,2 @@
+[Qt]
+style=adwaita
diff --git a/config/chroot_local-includes/usr/share/gdm/dconf/50-tails b/config/chroot_local-includes/usr/share/gdm/dconf/50-tails
index 8e0ea4d..b384c3c 100644
--- a/config/chroot_local-includes/usr/share/gdm/dconf/50-tails
+++ b/config/chroot_local-includes/usr/share/gdm/dconf/50-tails
@@ -4,5 +4,10 @@ session-name='gdm-tails'
[org/gnome/desktop/background]
picture-uri='file:///usr/share/tails/desktop_wallpaper.png'
+[org/gnome/desktop/peripherals/touchpad]
+natural-scroll = true
+tap-to-click = true
+two-finger-scrolling-enabled = true
+
[org/gnome/settings-daemon/plugins/cursor]
active = false
diff --git a/config/chroot_local-includes/usr/share/initramfs-tools/scripts/init-top/memory_wipe b/config/chroot_local-includes/usr/share/initramfs-tools/scripts/init-top/memory_wipe
index 60ce93d..e4fc5f6 100755
--- a/config/chroot_local-includes/usr/share/initramfs-tools/scripts/init-top/memory_wipe
+++ b/config/chroot_local-includes/usr/share/initramfs-tools/scripts/init-top/memory_wipe
@@ -40,19 +40,22 @@ if [ -n "${sdmem}" ] ; then
sdmemopts="v"
fi
/usr/bin/sdmem "-${sdmemopts}"
+ echo "Memory has been wiped!"
fi
if [ "${sdmemdebug}" = 1 ] ; then
clear
echo "Going to sleep 10 minutes. Happy dumping!"
- sleep 600
+ sleep 1200
fi
case "${sdmem}" in
halt)
+ echo "Powering off..."
/sbin/poweroff -fd
;;
reboot)
+ echo "Restarting..."
/sbin/reboot -fd
;;
*)
diff --git a/config/chroot_local-packageslists/tails-common.list b/config/chroot_local-packageslists/tails-common.list
index 2d6b48f..7701c88 100644
--- a/config/chroot_local-packageslists/tails-common.list
+++ b/config/chroot_local-packageslists/tails-common.list
@@ -52,10 +52,13 @@ bc
nodejs
# Needed by SSH's ProxyCommand
netcat-openbsd
+# Needed by Tails Installer when running on Tails
+libc6-i386
### Software
adwaita-qt
+adwaita-qt4
aircrack-ng
alsa-utils
apparmor
@@ -73,7 +76,6 @@ cracklib-runtime
desktop-base
dmz-cursor-theme
dosfstools
-eatmydata
electrum
enigmail
eog
@@ -94,12 +96,11 @@ gkbd-capplet
gnome-calculator
gnome-control-center
gnome-disk-utility
-gnome-flashback
+gnome-menus
gnome-power-manager
gnome-search-tool
gnome-screenshot
gnome-session
-gnome-session-flashback
gnome-shell-extension-top-icons-plus
gnome-shell-extensions
gnome-system-log
diff --git a/config/chroot_sources/jessie.binary b/config/chroot_sources/jessie.binary
deleted file mode 120000
index 945d62b..0000000
--- a/config/chroot_sources/jessie.binary
+++ /dev/null
@@ -1 +0,0 @@
-jessie.chroot \ No newline at end of file
diff --git a/config/chroot_sources/jessie.chroot b/config/chroot_sources/jessie.chroot
deleted file mode 100644
index a8381db..0000000
--- a/config/chroot_sources/jessie.chroot
+++ /dev/null
@@ -1,2 +0,0 @@
-deb http://security.debian.org/ jessie/updates main contrib non-free
-deb http://ftp.us.debian.org/debian/ jessie main contrib non-free
diff --git a/features/domains/fs_share.xml b/features/domains/fs_share.xml
deleted file mode 100644
index 718755e..0000000
--- a/features/domains/fs_share.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<filesystem type='mount' accessmode='passthrough'>
- <driver type='path' wrpolicy='immediate'/>
- <source dir=''/>
- <target dir=''/>
- <readonly/>
-</filesystem>
diff --git a/features/gnome.feature b/features/gnome.feature
index a267d42..61cbaae 100644
--- a/features/gnome.feature
+++ b/features/gnome.feature
@@ -3,9 +3,9 @@ Feature: GNOME is well-integrated into Tails
Scenario: A screenshot is taken when the PRINTSCREEN key is pressed
Given I have started Tails from DVD without network and logged in
- And there is no screenshot in the live user's home directory
+ And there is no screenshot in the live user's Pictures directory
When I press the "PRINTSCREEN" key
- Then a screenshot is saved to the live user's home directory
+ Then a screenshot is saved to the live user's Pictures directory
Scenario: GNOME notifications are shown to the user
Given I have started Tails from DVD without network and logged in
diff --git a/features/images/GitCloneDone.png b/features/images/GitCloneDone.png
index f81dd59..edc9d37 100644
--- a/features/images/GitCloneDone.png
+++ b/features/images/GitCloneDone.png
Binary files differ
diff --git a/features/images/GnomeEditMenu.png b/features/images/GnomeEditMenu.png
index 5b42d64..0a870f9 100644
--- a/features/images/GnomeEditMenu.png
+++ b/features/images/GnomeEditMenu.png
Binary files differ
diff --git a/features/images/GpgAppletManageKeys.png b/features/images/GpgAppletManageKeys.png
index 7636f31..974b8da 100644
--- a/features/images/GpgAppletManageKeys.png
+++ b/features/images/GpgAppletManageKeys.png
Binary files differ
diff --git a/features/images/GtkFileChooserDesktopButton.png b/features/images/GtkFileChooserDesktopButton.png
index 434a3e4..3d9dae3 100644
--- a/features/images/GtkFileChooserDesktopButton.png
+++ b/features/images/GtkFileChooserDesktopButton.png
Binary files differ
diff --git a/features/images/PidginAccountManagerAddButton.png b/features/images/PidginAccountManagerAddButton.png
index 446b9ce..8853561 100644
--- a/features/images/PidginAccountManagerAddButton.png
+++ b/features/images/PidginAccountManagerAddButton.png
Binary files differ
diff --git a/features/images/PidginAccountManagerCloseButton.png b/features/images/PidginAccountManagerCloseButton.png
index f8fe293..c62b91e 100644
--- a/features/images/PidginAccountManagerCloseButton.png
+++ b/features/images/PidginAccountManagerCloseButton.png
Binary files differ
diff --git a/features/images/PidginAccountWindow.png b/features/images/PidginAccountWindow.png
index 08a3c32..1cc518c 100644
--- a/features/images/PidginAccountWindow.png
+++ b/features/images/PidginAccountWindow.png
Binary files differ
diff --git a/features/images/PidginAddAccountProtocolLabel.png b/features/images/PidginAddAccountProtocolLabel.png
index 5917371..c2add1e 100644
--- a/features/images/PidginAddAccountProtocolLabel.png
+++ b/features/images/PidginAddAccountProtocolLabel.png
Binary files differ
diff --git a/features/images/PidginAddAccountProtocolXMPP.png b/features/images/PidginAddAccountProtocolXMPP.png
index 6cb5035..31632a3 100644
--- a/features/images/PidginAddAccountProtocolXMPP.png
+++ b/features/images/PidginAddAccountProtocolXMPP.png
Binary files differ
diff --git a/features/images/PidginAddAccountWindow.png b/features/images/PidginAddAccountWindow.png
index 39a15b1..b87dbda0 100644
--- a/features/images/PidginAddAccountWindow.png
+++ b/features/images/PidginAddAccountWindow.png
Binary files differ
diff --git a/features/images/PidginAddAccountXMPPAddButton.png b/features/images/PidginAddAccountXMPPAddButton.png
index 76c4455..fea0c43 100644
--- a/features/images/PidginAddAccountXMPPAddButton.png
+++ b/features/images/PidginAddAccountXMPPAddButton.png
Binary files differ
diff --git a/features/images/PidginAddAccountXMPPAdvancedTab.png b/features/images/PidginAddAccountXMPPAdvancedTab.png
index 5cbdd7a..2d6983f 100644
--- a/features/images/PidginAddAccountXMPPAdvancedTab.png
+++ b/features/images/PidginAddAccountXMPPAdvancedTab.png
Binary files differ
diff --git a/features/images/PidginAddAccountXMPPConnectServer.png b/features/images/PidginAddAccountXMPPConnectServer.png
index 99ebdde..9752718 100644
--- a/features/images/PidginAddAccountXMPPConnectServer.png
+++ b/features/images/PidginAddAccountXMPPConnectServer.png
Binary files differ
diff --git a/features/images/PidginAddAccountXMPPDomain.png b/features/images/PidginAddAccountXMPPDomain.png
index 6209e81..87cbcdf 100644
--- a/features/images/PidginAddAccountXMPPDomain.png
+++ b/features/images/PidginAddAccountXMPPDomain.png
Binary files differ
diff --git a/features/images/PidginAddAccountXMPPPassword.png b/features/images/PidginAddAccountXMPPPassword.png
index 89be45a..44ef03f 100644
--- a/features/images/PidginAddAccountXMPPPassword.png
+++ b/features/images/PidginAddAccountXMPPPassword.png
Binary files differ
diff --git a/features/images/PidginAddAccountXMPPRememberPassword.png b/features/images/PidginAddAccountXMPPRememberPassword.png
index 2b39a05..2923277 100644
--- a/features/images/PidginAddAccountXMPPRememberPassword.png
+++ b/features/images/PidginAddAccountXMPPRememberPassword.png
Binary files differ
diff --git a/features/images/PidginAddAccountXMPPUsername.png b/features/images/PidginAddAccountXMPPUsername.png
index a087dac..1ee30d7 100644
--- a/features/images/PidginAddAccountXMPPUsername.png
+++ b/features/images/PidginAddAccountXMPPUsername.png
Binary files differ
diff --git a/features/images/PidginAvailableStatus.png b/features/images/PidginAvailableStatus.png
index 21e4377..ad219d8 100644
--- a/features/images/PidginAvailableStatus.png
+++ b/features/images/PidginAvailableStatus.png
Binary files differ
diff --git a/features/images/PidginBuddiesMenu.png b/features/images/PidginBuddiesMenu.png
index 45c936e..d29ba07 100644
--- a/features/images/PidginBuddiesMenu.png
+++ b/features/images/PidginBuddiesMenu.png
Binary files differ
diff --git a/features/images/PidginBuddiesMenuJoinChat.png b/features/images/PidginBuddiesMenuJoinChat.png
index 65f9354..d0228ed 100644
--- a/features/images/PidginBuddiesMenuJoinChat.png
+++ b/features/images/PidginBuddiesMenuJoinChat.png
Binary files differ
diff --git a/features/images/PidginCertificateAddButton.png b/features/images/PidginCertificateAddButton.png
index 9bce527..4c69ba6 100644
--- a/features/images/PidginCertificateAddButton.png
+++ b/features/images/PidginCertificateAddButton.png
Binary files differ
diff --git a/features/images/PidginCertificateImportFailed.png b/features/images/PidginCertificateImportFailed.png
index cff450c..403ab5f 100644
--- a/features/images/PidginCertificateImportFailed.png
+++ b/features/images/PidginCertificateImportFailed.png
Binary files differ
diff --git a/features/images/PidginCertificateManagerDialog.png b/features/images/PidginCertificateManagerDialog.png
index cbab380..204f73d 100644
--- a/features/images/PidginCertificateManagerDialog.png
+++ b/features/images/PidginCertificateManagerDialog.png
Binary files differ
diff --git a/features/images/PidginCertificateTestItem.png b/features/images/PidginCertificateTestItem.png
index f0cf923..1ad8795 100644
--- a/features/images/PidginCertificateTestItem.png
+++ b/features/images/PidginCertificateTestItem.png
Binary files differ
diff --git a/features/images/PidginCertificatesMenuItem.png b/features/images/PidginCertificatesMenuItem.png
index 3a5d9c9..3d07c03 100644
--- a/features/images/PidginCertificatesMenuItem.png
+++ b/features/images/PidginCertificatesMenuItem.png
Binary files differ
diff --git a/features/images/PidginConversationOTRMenu.png b/features/images/PidginConversationOTRMenu.png
index dc66e26..98c4c48 100644
--- a/features/images/PidginConversationOTRMenu.png
+++ b/features/images/PidginConversationOTRMenu.png
Binary files differ
diff --git a/features/images/PidginConversationWindowMenuBar.png b/features/images/PidginConversationWindowMenuBar.png
index 10fb6b8..a9e7c79 100644
--- a/features/images/PidginConversationWindowMenuBar.png
+++ b/features/images/PidginConversationWindowMenuBar.png
Binary files differ
diff --git a/features/images/PidginFriendExpectedAnswer.png b/features/images/PidginFriendExpectedAnswer.png
index 535c252..11b9f91 100644
--- a/features/images/PidginFriendExpectedAnswer.png
+++ b/features/images/PidginFriendExpectedAnswer.png
Binary files differ
diff --git a/features/images/PidginFriendOnline.png b/features/images/PidginFriendOnline.png
index 20a4fb0..f8736a0 100644
--- a/features/images/PidginFriendOnline.png
+++ b/features/images/PidginFriendOnline.png
Binary files differ
diff --git a/features/images/PidginOTRKeyGenPrompt.png b/features/images/PidginOTRKeyGenPrompt.png
index 194e044..f020236 100644
--- a/features/images/PidginOTRKeyGenPrompt.png
+++ b/features/images/PidginOTRKeyGenPrompt.png
Binary files differ
diff --git a/features/images/PidginOTRKeyGenPromptDoneButton.png b/features/images/PidginOTRKeyGenPromptDoneButton.png
index 8fb885a..a739d7d 100644
--- a/features/images/PidginOTRKeyGenPromptDoneButton.png
+++ b/features/images/PidginOTRKeyGenPromptDoneButton.png
Binary files differ
diff --git a/features/images/PidginOTRMenuStartSession.png b/features/images/PidginOTRMenuStartSession.png
index 9f686a5..116de72 100644
--- a/features/images/PidginOTRMenuStartSession.png
+++ b/features/images/PidginOTRMenuStartSession.png
Binary files differ
diff --git a/features/images/PidginToolsMenu.png b/features/images/PidginToolsMenu.png
index eced16b..e9c5623 100644
--- a/features/images/PidginToolsMenu.png
+++ b/features/images/PidginToolsMenu.png
Binary files differ
diff --git a/features/images/SeahorseEditPreferences.png b/features/images/SeahorseEditPreferences.png
index e516ad9..bd9cf38 100644
--- a/features/images/SeahorseEditPreferences.png
+++ b/features/images/SeahorseEditPreferences.png
Binary files differ
diff --git a/features/images/SeahorseFindKeysWindow.png b/features/images/SeahorseFindKeysWindow.png
index 32b2633..c86a84c 100644
--- a/features/images/SeahorseFindKeysWindow.png
+++ b/features/images/SeahorseFindKeysWindow.png
Binary files differ
diff --git a/features/images/SeahorseImport.png b/features/images/SeahorseImport.png
index 63c728a..bc3c1f8 100644
--- a/features/images/SeahorseImport.png
+++ b/features/images/SeahorseImport.png
Binary files differ
diff --git a/features/images/SeahorseKeyResultWindow.png b/features/images/SeahorseKeyResultWindow.png
index 0ec7b60..36addbb 100644
--- a/features/images/SeahorseKeyResultWindow.png
+++ b/features/images/SeahorseKeyResultWindow.png
Binary files differ
diff --git a/features/images/SeahorsePreferences.png b/features/images/SeahorsePreferences.png
index 76a64b4..4b00f1a 100644
--- a/features/images/SeahorsePreferences.png
+++ b/features/images/SeahorsePreferences.png
Binary files differ
diff --git a/features/images/SeahorseRemoteMenu.png b/features/images/SeahorseRemoteMenu.png
index e557f8b..834c449 100644
--- a/features/images/SeahorseRemoteMenu.png
+++ b/features/images/SeahorseRemoteMenu.png
Binary files differ
diff --git a/features/images/SeahorseRemoteMenuFind.png b/features/images/SeahorseRemoteMenuFind.png
index 2a064c8..d9432b2 100644
--- a/features/images/SeahorseRemoteMenuFind.png
+++ b/features/images/SeahorseRemoteMenuFind.png
Binary files differ
diff --git a/features/images/SeahorseRemoteMenuSync.png b/features/images/SeahorseRemoteMenuSync.png
index 5255e54..3699b7d 100644
--- a/features/images/SeahorseRemoteMenuSync.png
+++ b/features/images/SeahorseRemoteMenuSync.png
Binary files differ
diff --git a/features/images/SeahorseSyncKeys.png b/features/images/SeahorseSyncKeys.png
index dcd5bfd..7fe26e0 100644
--- a/features/images/SeahorseSyncKeys.png
+++ b/features/images/SeahorseSyncKeys.png
Binary files differ
diff --git a/features/images/SeahorseWindow.png b/features/images/SeahorseWindow.png
index a868798..e8228d6 100644
--- a/features/images/SeahorseWindow.png
+++ b/features/images/SeahorseWindow.png
Binary files differ
diff --git a/features/images/TailsGreeter.png b/features/images/TailsGreeter.png
index ad01bfc..80629c6 100644
--- a/features/images/TailsGreeter.png
+++ b/features/images/TailsGreeter.png
Binary files differ
diff --git a/features/images/TailsGreeterAddMoreOptions.png b/features/images/TailsGreeterAddMoreOptions.png
new file mode 100644
index 0000000..9c19635
--- /dev/null
+++ b/features/images/TailsGreeterAddMoreOptions.png
Binary files differ
diff --git a/features/images/TailsGreeterAdditionalSettingsAdd.png b/features/images/TailsGreeterAdditionalSettingsAdd.png
new file mode 100644
index 0000000..b944152
--- /dev/null
+++ b/features/images/TailsGreeterAdditionalSettingsAdd.png
Binary files differ
diff --git a/features/images/TailsGreeterAdditionalSettingsDialog.png b/features/images/TailsGreeterAdditionalSettingsDialog.png
new file mode 100644
index 0000000..292846b
--- /dev/null
+++ b/features/images/TailsGreeterAdditionalSettingsDialog.png
Binary files differ
diff --git a/features/images/TailsGreeterAdminPassword.png b/features/images/TailsGreeterAdminPassword.png
index 7da007f..db53075 100644
--- a/features/images/TailsGreeterAdminPassword.png
+++ b/features/images/TailsGreeterAdminPassword.png
Binary files differ
diff --git a/features/images/TailsGreeterDisableAllNetworking.png b/features/images/TailsGreeterDisableAllNetworking.png
index 67e24c1..4ad898d 100644
--- a/features/images/TailsGreeterDisableAllNetworking.png
+++ b/features/images/TailsGreeterDisableAllNetworking.png
Binary files differ
diff --git a/features/images/TailsGreeterDisableMACSpoofing.png b/features/images/TailsGreeterDisableMACSpoofing.png
new file mode 100644
index 0000000..2cc56be
--- /dev/null
+++ b/features/images/TailsGreeterDisableMACSpoofing.png
Binary files differ
diff --git a/features/images/TailsGreeterForward.png b/features/images/TailsGreeterForward.png
deleted file mode 100644
index 1a2153a..0000000
--- a/features/images/TailsGreeterForward.png
+++ /dev/null
Binary files differ
diff --git a/features/images/TailsGreeterLanguage.png b/features/images/TailsGreeterLanguage.png
index 537a7d6..f0afb95 100644
--- a/features/images/TailsGreeterLanguage.png
+++ b/features/images/TailsGreeterLanguage.png
Binary files differ
diff --git a/features/images/TailsGreeterLanguagePopover.png b/features/images/TailsGreeterLanguagePopover.png
new file mode 100644
index 0000000..abad6f4
--- /dev/null
+++ b/features/images/TailsGreeterLanguagePopover.png
Binary files differ
diff --git a/features/images/TailsGreeterLoginButton.png b/features/images/TailsGreeterLoginButton.png
index 2c30856..8b55428 100644
--- a/features/images/TailsGreeterLoginButton.png
+++ b/features/images/TailsGreeterLoginButton.png
Binary files differ
diff --git a/features/images/TailsGreeterLoginButtonGerman.png b/features/images/TailsGreeterLoginButtonGerman.png
index 119f126..097d165 100644
--- a/features/images/TailsGreeterLoginButtonGerman.png
+++ b/features/images/TailsGreeterLoginButtonGerman.png
Binary files differ
diff --git a/features/images/TailsGreeterMACSpoofing.png b/features/images/TailsGreeterMACSpoofing.png
index 017e2f0..58fa3b7 100644
--- a/features/images/TailsGreeterMACSpoofing.png
+++ b/features/images/TailsGreeterMACSpoofing.png
Binary files differ
diff --git a/features/images/TailsGreeterMoreOptions.png b/features/images/TailsGreeterMoreOptions.png
deleted file mode 100644
index 79acfba..0000000
--- a/features/images/TailsGreeterMoreOptions.png
+++ /dev/null
Binary files differ
diff --git a/features/images/TailsGreeterNetworkConnection.png b/features/images/TailsGreeterNetworkConnection.png
new file mode 100644
index 0000000..2e23af5
--- /dev/null
+++ b/features/images/TailsGreeterNetworkConnection.png
Binary files differ
diff --git a/features/images/TailsGreeterPersistence.png b/features/images/TailsGreeterPersistence.png
deleted file mode 100644
index c063065..0000000
--- a/features/images/TailsGreeterPersistence.png
+++ /dev/null
Binary files differ
diff --git a/features/images/TailsGreeterPersistencePassphrase.png b/features/images/TailsGreeterPersistencePassphrase.png
index 0b220b5..6ed1b50 100644
--- a/features/images/TailsGreeterPersistencePassphrase.png
+++ b/features/images/TailsGreeterPersistencePassphrase.png
Binary files differ
diff --git a/features/images/TailsGreeterPersistenceUnlocked.png b/features/images/TailsGreeterPersistenceUnlocked.png
new file mode 100644
index 0000000..f1ff3a4
--- /dev/null
+++ b/features/images/TailsGreeterPersistenceUnlocked.png
Binary files differ
diff --git a/features/images/TailsGreeterSpecificTorConfiguration.png b/features/images/TailsGreeterSpecificTorConfiguration.png
new file mode 100644
index 0000000..408e059
--- /dev/null
+++ b/features/images/TailsGreeterSpecificTorConfiguration.png
Binary files differ
diff --git a/features/images/TailsGreeterTorConf.png b/features/images/TailsGreeterTorConf.png
deleted file mode 100644
index 900f448..0000000
--- a/features/images/TailsGreeterTorConf.png
+++ /dev/null
Binary files differ
diff --git a/features/images/TailsGreeterWindowsCamouflage.png b/features/images/TailsGreeterWindowsCamouflage.png
deleted file mode 100644
index 08fdb83..0000000
--- a/features/images/TailsGreeterWindowsCamouflage.png
+++ /dev/null
Binary files differ
diff --git a/features/images/UnsafeBrowserDNSError.png b/features/images/UnsafeBrowserDNSError.png
index 6e8f900..233bc19 100644
--- a/features/images/UnsafeBrowserDNSError.png
+++ b/features/images/UnsafeBrowserDNSError.png
Binary files differ
diff --git a/features/images/UnsafeBrowserProxySettingsOkButton.png b/features/images/UnsafeBrowserProxySettingsOkButton.png
index 251ceb8..93840ce 100644
--- a/features/images/UnsafeBrowserProxySettingsOkButton.png
+++ b/features/images/UnsafeBrowserProxySettingsOkButton.png
Binary files differ
diff --git a/features/mac_spoofing.feature b/features/mac_spoofing.feature
index d603638..c6bdb27 100644
--- a/features/mac_spoofing.feature
+++ b/features/mac_spoofing.feature
@@ -11,8 +11,7 @@ Feature: Spoofing MAC addresses
And the network is plugged
Scenario: MAC address spoofing is disabled
- When I enable more Tails Greeter options
- And I disable MAC spoofing in Tails Greeter
+ When I disable MAC spoofing in Tails Greeter
And I log in to a new session
And Tor is ready
Then 1 network interface is enabled
diff --git a/features/mat.feature b/features/mat.feature
index 95ace5b..1b6345f 100644
--- a/features/mat.feature
+++ b/features/mat.feature
@@ -3,11 +3,8 @@ Feature: Metadata Anonymization Toolkit
As a Tails user
I want to be able to remove leaky metadata from documents and media files
- # In this feature we cannot restore from snapshots since it's
- # incompatible with filesystem shares.
-
Scenario: MAT can clean a PNG file
Given a computer
- And I setup a filesystem share containing a sample PNG
And I start Tails from DVD with network unplugged and I login
+ And I plug and mount a USB drive containing a sample PNG
Then MAT can clean some sample PNG file
diff --git a/features/networking.feature b/features/networking.feature
index 4995642..ca80657 100644
--- a/features/networking.feature
+++ b/features/networking.feature
@@ -13,7 +13,6 @@ Feature: Networking
Scenario: The Tails Greeter "disable all networking" option disables networking within Tails
Given I have started Tails from DVD without network and stopped at Tails Greeter's login screen
- And I enable more Tails Greeter options
And I disable all networking in the Tails Greeter
And I log in to a new session
Then no network interfaces are enabled
diff --git a/features/step_definitions/checks.rb b/features/step_definitions/checks.rb
index 2109f92..601ee8b 100644
--- a/features/step_definitions/checks.rb
+++ b/features/step_definitions/checks.rb
@@ -106,17 +106,6 @@ Then /^the VirtualBox guest modules are available$/ do
"The vboxguest module is not available.")
end
-Given /^I setup a filesystem share containing a sample PNG$/ do
- shared_png_dir_on_host = "#{$config["TMPDIR"]}/shared_png_dir"
- @shared_png_dir_on_guest = "/tmp/shared_png_dir"
- FileUtils.mkdir_p(shared_png_dir_on_host)
- Dir.glob("#{MISC_FILES_DIR}/*.png") do |png_file|
- FileUtils.cp(png_file, shared_png_dir_on_host)
- end
- add_after_scenario_hook { FileUtils.rm_r(shared_png_dir_on_host) }
- $vm.add_share(shared_png_dir_on_host, @shared_png_dir_on_guest)
-end
-
Then /^the support documentation page opens in Tor Browser$/ do
if @language == 'German'
expected_title = 'Tails - Hilfe & Support'
@@ -134,11 +123,15 @@ Then /^the support documentation page opens in Tor Browser$/ do
)
end
+Given /^I plug and mount a USB drive containing a sample PNG$/ do
+ @png_dir = share_host_files(Dir.glob("#{MISC_FILES_DIR}/*.png"))
+end
+
Then /^MAT can clean some sample PNG file$/ do
for png_on_host in Dir.glob("#{MISC_FILES_DIR}/*.png") do
png_name = File.basename(png_on_host)
png_on_guest = "/home/#{LIVE_USER}/#{png_name}"
- step "I copy \"#{@shared_png_dir_on_guest}/#{png_name}\" to \"#{png_on_guest}\" as user \"#{LIVE_USER}\""
+ step "I copy \"#{@png_dir}/#{png_name}\" to \"#{png_on_guest}\" as user \"#{LIVE_USER}\""
raw_check_cmd = "grep --quiet --fixed-strings --text " +
"'Created with GIMP' '#{png_on_guest}'"
assert($vm.execute(raw_check_cmd, user: LIVE_USER).success?,
@@ -242,12 +235,10 @@ Then /^tails-debugging-info is not susceptible to symlink attacks$/ do
end
When /^I disable all networking in the Tails Greeter$/ do
- begin
- @screen.click('TailsGreeterDisableAllNetworking.png')
- rescue FindFailed
- @screen.type(Sikuli::Key.PAGE_DOWN)
- @screen.click('TailsGreeterDisableAllNetworking.png')
- end
+ open_greeter_additional_settings()
+ @screen.wait_and_click('TailsGreeterNetworkConnection.png', 30)
+ @screen.wait_and_click('TailsGreeterDisableAllNetworking.png', 10)
+ @screen.wait_and_click("TailsGreeterAdditionalSettingsAdd.png", 10)
end
Then /^the Tor Status icon tells me that Tor is( not)? usable$/ do |not_usable|
diff --git a/features/step_definitions/common_steps.rb b/features/step_definitions/common_steps.rb
index 19481c5..469cee5 100644
--- a/features/step_definitions/common_steps.rb
+++ b/features/step_definitions/common_steps.rb
@@ -8,24 +8,6 @@ def post_vm_start_hook
@screen.click_point(@screen.w - 1, @screen.h/2)
end
-def activate_filesystem_shares
- # XXX-9p: First of all, filesystem shares cannot be mounted while we
- # do a snapshot save+restore, so unmounting+remounting them seems
- # like a good idea. However, the 9p modules get into a broken state
- # during the save+restore, so we also would like to unload+reload
- # them, but loading of 9pnet_virtio fails after a restore with
- # "probe of virtio2 failed with error -2" (in dmesg) which makes the
- # shares unavailable. Hence we leave this code commented for now.
- #for mod in ["9pnet_virtio", "9p"] do
- # $vm.execute("modprobe #{mod}")
- #end
-
- $vm.list_shares.each do |share|
- $vm.execute("mkdir -p #{share}")
- $vm.execute("mount -t 9p -o trans=virtio #{share} #{share}")
- end
-end
-
def context_menu_helper(top, bottom, menu_item)
try_for(60) do
t = @screen.wait(top, 10)
@@ -41,24 +23,10 @@ def context_menu_helper(top, bottom, menu_item)
end
end
-def deactivate_filesystem_shares
- $vm.list_shares.each do |share|
- $vm.execute("umount #{share}")
- end
-
- # XXX-9p: See XXX-9p above
- #for mod in ["9p", "9pnet_virtio"] do
- # $vm.execute("modprobe -r #{mod}")
- #end
-end
-
def post_snapshot_restore_hook
$vm.wait_until_remote_shell_is_up
post_vm_start_hook
- # XXX-9p: See XXX-9p above
- #activate_filesystem_shares
-
# The guest's Tor's circuits' states are likely to get out of sync
# with the other relays, so we ensure that we have fresh circuits.
# Time jumps and incorrect clocks also confuses Tor in many ways.
@@ -97,7 +65,7 @@ Given /^the computer is set to boot from (.+?) drive "(.+?)"$/ do |type, name|
$vm.set_disk_boot(name, type.downcase)
end
-Given /^I (temporarily )?create a (\d+) ([[:alpha:]]+) disk named "([^"]+)"$/ do |temporary, size, unit, name|
+Given /^I (temporarily )?create an? (\d+) ([[:alpha:]]+) disk named "([^"]+)"$/ do |temporary, size, unit, name|
$vm.storage.create_new_disk(name, {:size => size, :unit => unit,
:type => "qcow2"})
add_after_scenario_hook { $vm.storage.delete_volume(name) } if temporary
@@ -304,7 +272,6 @@ Given /^the computer (re)?boots Tails$/ do |reboot|
Sikuli::Key.ENTER)
@screen.wait('TailsGreeter.png', 5*60)
$vm.wait_until_remote_shell_is_up
- activate_filesystem_shares
step 'I configure Tails to use a simulated Tor network'
end
@@ -313,7 +280,10 @@ Given /^I log in to a new session(?: in )?(|German)$/ do |lang|
when 'German'
@language = "German"
@screen.wait_and_click('TailsGreeterLanguage.png', 10)
- @screen.wait_and_click("TailsGreeterLanguage#{@language}.png", 10)
+ @screen.wait('TailsGreeterLanguagePopover.png', 10)
+ @screen.type(@language)
+ sleep(2) # Gtk needs some time to filter the results
+ @screen.type(Sikuli::Key.ENTER)
@screen.wait_and_click("TailsGreeterLoginButton#{@language}.png", 10)
when ''
@screen.wait_and_click('TailsGreeterLoginButton.png', 10)
@@ -324,22 +294,29 @@ Given /^I log in to a new session(?: in )?(|German)$/ do |lang|
step 'the Tails desktop is ready'
end
-Given /^I enable more Tails Greeter options$/ do
- match = @screen.find('TailsGreeterMoreOptions.png')
- @screen.click(match.getCenter.offset(match.w/2, match.h*2))
- @screen.wait_and_click('TailsGreeterForward.png', 20)
- @screen.wait('TailsGreeterLoginButton.png', 20)
+def open_greeter_additional_settings
+ @screen.click('TailsGreeterAddMoreOptions.png')
+ @screen.wait('TailsGreeterAdditionalSettingsDialog.png', 10)
+end
+
+Given /^I open Tails Greeter additional settings dialog$/ do
+ open_greeter_additional_settings()
end
Given /^I enable the specific Tor configuration option$/ do
- @screen.click('TailsGreeterTorConf.png')
+ open_greeter_additional_settings()
+ @screen.wait_and_click('TailsGreeterNetworkConnection.png', 30)
+ @screen.wait_and_click("TailsGreeterSpecificTorConfiguration.png", 10)
+ @screen.wait_and_click("TailsGreeterAdditionalSettingsAdd.png", 10)
end
Given /^I set an administration password$/ do
- @screen.wait("TailsGreeterAdminPassword.png", 20)
+ open_greeter_additional_settings()
+ @screen.wait_and_click("TailsGreeterAdminPassword.png", 20)
@screen.type(@sudo_password)
@screen.type(Sikuli::Key.TAB)
@screen.type(@sudo_password)
+ @screen.type(Sikuli::Key.ENTER)
end
Given /^Tails Greeter has applied all settings$/ do
@@ -940,3 +917,27 @@ Then /^Tails is running version (.+)$/ do |version|
.scan(/TAILS_VERSION_ID="(#{version})"/).flatten.first
assert_equal(version, v2, "The version doesn't match /etc/os-release")
end
+
+def share_host_files(files)
+ files = [files] if files.class == String
+ assert_equal(Array, files.class)
+ disk_size = files.map { |f| File.new(f).size } .inject(0, :+)
+ # Let's add some extra space for filesysten overhead etc.
+ disk_size += [convert_to_bytes(1, 'MiB'), (disk_size * 0.10).ceil].max
+ disk = random_alpha_string(10)
+ step "I temporarily create an #{disk_size} bytes disk named \"#{disk}\""
+ step "I create a gpt partition labeled \"#{disk}\" with an ext4 " +
+ "filesystem on disk \"#{disk}\""
+ $vm.storage.guestfs_disk_helper(disk) do |g, _|
+ partition = g.list_partitions().first
+ g.mount(partition, "/")
+ files.each { |f| g.upload(f, "/" + File.basename(f)) }
+ end
+ step "I plug USB drive \"#{disk}\""
+ mount_dir = $vm.execute_successfully('mktemp -d').stdout.chomp
+ dev = $vm.disk_dev(disk)
+ partition = dev + '1'
+ $vm.execute_successfully("mount #{partition} #{mount_dir}")
+ $vm.execute_successfully("chmod -R a+rX '#{mount_dir}'")
+ return mount_dir
+end
diff --git a/features/step_definitions/erase_memory.rb b/features/step_definitions/erase_memory.rb
index 5828537..e0206c7 100644
--- a/features/step_definitions/erase_memory.rb
+++ b/features/step_definitions/erase_memory.rb
@@ -179,10 +179,17 @@ end
When /^I shutdown and wait for Tails to finish wiping the memory$/ do
$vm.spawn("halt")
- try_for(memory_wipe_timeout, { :msg => "memory wipe didn't finish, probably the VM crashed" }) do
- # We spam keypresses to prevent console blanking from hiding the
- # image we're waiting for
- @screen.type(" ")
- @screen.find('MemoryWipeCompleted.png')
+ begin
+ try_for(memory_wipe_timeout, msg: "memory wipe didn't finish, probably the VM crashed") do
+ # We spam keypresses to prevent console blanking from hiding the
+ # image we're waiting for
+ @screen.type(" ")
+ @screen.find('MemoryWipeCompleted.png')
+ end
+ rescue Timeout::Error
+ puts "Cannot tell if memory wipe completed. " +
+ "One possible reason for this is a garbled display, " +
+ "so let's go on and rely on the next steps to check " +
+ "how well memory was wiped."
end
end
diff --git a/features/step_definitions/gnome.rb b/features/step_definitions/gnome.rb
index f304f63..6e40601 100644
--- a/features/step_definitions/gnome.rb
+++ b/features/step_definitions/gnome.rb
@@ -1,13 +1,13 @@
-Then /^there is no screenshot in the live user's home directory$/ do
- pictures_directory = "/home/#{LIVE_USER}"
+Then /^there is no screenshot in the live user's Pictures directory$/ do
+ pictures_directory = "/home/#{LIVE_USER}/Pictures"
assert($vm.execute(
"find '#{pictures_directory}' -name 'Screenshot*.png' -maxdepth 1"
).stdout.empty?,
"Existing screenshots were found in the live user's Pictures directory.")
end
-Then /^a screenshot is saved to the live user's home directory$/ do
- pictures_directory = "/home/#{LIVE_USER}"
+Then /^a screenshot is saved to the live user's Pictures directory$/ do
+ pictures_directory = "/home/#{LIVE_USER}/Pictures"
try_for(10, :msg=> "No screenshot was created in #{pictures_directory}") do
!$vm.execute(
"find '#{pictures_directory}' -name 'Screenshot*.png' -maxdepth 1"
diff --git a/features/step_definitions/icedove.rb b/features/step_definitions/icedove.rb
index 7e94716..f11e9bd 100644
--- a/features/step_definitions/icedove.rb
+++ b/features/step_definitions/icedove.rb
@@ -89,7 +89,7 @@ Then /^I see that Enigmail is configured to use the correct keyserver$/ do
keyservers = @enigmail_prefs.child(
'Specify your keyserver(s):', roleName: 'entry'
).text
- assert_equal('hkps://hkps.pool.sks-keyservers.net', keyservers)
+ assert_equal("hkps://#{CONFIGURED_KEYSERVER_HOSTNAME}", keyservers)
end
Then /^I see that Enigmail is configured to use the correct SOCKS proxy$/ do
diff --git a/features/step_definitions/mac_spoofing.rb b/features/step_definitions/mac_spoofing.rb
index 443002a..d094568 100644
--- a/features/step_definitions/mac_spoofing.rb
+++ b/features/step_definitions/mac_spoofing.rb
@@ -5,7 +5,10 @@ def all_ethernet_nics
end
When /^I disable MAC spoofing in Tails Greeter$/ do
+ open_greeter_additional_settings()
@screen.wait_and_click("TailsGreeterMACSpoofing.png", 30)
+ @screen.wait_and_click("TailsGreeterDisableMACSpoofing.png", 10)
+ @screen.wait_and_click("TailsGreeterAdditionalSettingsAdd.png", 10)
end
Then /^the network device has (its default|a spoofed) MAC address configured$/ do |mode|
diff --git a/features/step_definitions/pidgin.rb b/features/step_definitions/pidgin.rb
index dc6ddad..4ad74ad 100644
--- a/features/step_definitions/pidgin.rb
+++ b/features/step_definitions/pidgin.rb
@@ -429,7 +429,7 @@ end
def pidgin_add_certificate_from (cert_file)
# Here, we need a certificate that is not already in the NSS database
- step "I copy \"/usr/share/ca-certificates/spi-inc.org/spi-cacert-2008.crt\" to \"#{cert_file}\" as user \"amnesia\""
+ step "I copy \"/usr/share/ca-certificates/mozilla/CNNIC_ROOT.crt\" to \"#{cert_file}\" as user \"amnesia\""
$vm.focus_window('Buddy List')
@screen.wait_and_click('PidginToolsMenu.png', 10)
diff --git a/features/step_definitions/snapshots.rb b/features/step_definitions/snapshots.rb
index 4977d60..43e726d 100644
--- a/features/step_definitions/snapshots.rb
+++ b/features/step_definitions/snapshots.rb
@@ -60,7 +60,6 @@ def checkpoints
:description => "I have started Tails from DVD without network and logged in with bridge mode enabled",
:parent_checkpoint => "tails-greeter",
:steps => [
- 'I enable more Tails Greeter options',
'I enable the specific Tor configuration option',
'I log in to a new session',
'all notifications have disappeared',
@@ -72,7 +71,6 @@ def checkpoints
:description => "I have started Tails from DVD without network and logged in with an administration password",
:parent_checkpoint => "tails-greeter",
:steps => [
- 'I enable more Tails Greeter options',
'I set an administration password',
'I log in to a new session',
],
diff --git a/features/step_definitions/ssh.rb b/features/step_definitions/ssh.rb
index e998101..63b60b5 100644
--- a/features/step_definitions/ssh.rb
+++ b/features/step_definitions/ssh.rb
@@ -127,7 +127,7 @@ Then /^I connect to an SFTP server on the Internet$/ do
end
retry_tor(recovery_proc) do
- step 'I start "Files" via the GNOME "Accessories" applications menu'
+ step 'I start "Nautilus" via the GNOME "Accessories" applications menu'
@screen.wait_and_click("GnomeFilesConnectToServer.png", 10)
@screen.wait("GnomeConnectToServerWindow.png", 10)
@screen.type("sftp://" + @sftp_username + "@" + @sftp_host + ":" + @sftp_port)
diff --git a/features/step_definitions/totem.rb b/features/step_definitions/totem.rb
index 520e7d6..a5b88d1 100644
--- a/features/step_definitions/totem.rb
+++ b/features/step_definitions/totem.rb
@@ -1,23 +1,24 @@
Given /^I create sample videos$/ do
- @shared_video_dir_on_host = "#{$config["TMPDIR"]}/shared_video_dir"
- @shared_video_dir_on_guest = "/tmp/shared_video_dir"
- FileUtils.mkdir_p(@shared_video_dir_on_host)
- add_after_scenario_hook { FileUtils.rm_r(@shared_video_dir_on_host) }
+ @video_dir_on_host = "#{$config["TMPDIR"]}/video_dir"
+ FileUtils.mkdir_p(@video_dir_on_host)
+ add_after_scenario_hook { FileUtils.rm_r(@video_dir_on_host) }
fatal_system("avconv -loop 1 -t 30 -f image2 " +
"-i 'features/images/USBTailsLogo.png' " +
"-an -vcodec libx264 -y " +
'-filter:v "crop=in_w-mod(in_w\,2):in_h-mod(in_h\,2)" ' +
- "'#{@shared_video_dir_on_host}/video.mp4' >/dev/null 2>&1")
+ "'#{@video_dir_on_host}/video.mp4' >/dev/null 2>&1")
end
-Given /^I setup a filesystem share containing sample videos$/ do
- $vm.add_share(@shared_video_dir_on_host, @shared_video_dir_on_guest)
+Given /^I plug and mount a USB drive containing sample videos$/ do
+ @video_dir_on_guest = share_host_files(
+ Dir.glob("#{@video_dir_on_host}/*")
+ )
end
Given /^I copy the sample videos to "([^"]+)" as user "([^"]+)"$/ do |destination, user|
- for video_on_host in Dir.glob("#{@shared_video_dir_on_host}/*.mp4") do
+ for video_on_host in Dir.glob("#{@video_dir_on_host}/*.mp4") do
video_name = File.basename(video_on_host)
- src_on_guest = "#{@shared_video_dir_on_guest}/#{video_name}"
+ src_on_guest = "#{@video_dir_on_guest}/#{video_name}"
dst_on_guest = "#{destination}/#{video_name}"
step "I copy \"#{src_on_guest}\" to \"#{dst_on_guest}\" as user \"amnesia\""
end
diff --git a/features/step_definitions/unsafe_browser.rb b/features/step_definitions/unsafe_browser.rb
index f168e83..a4535bc 100644
--- a/features/step_definitions/unsafe_browser.rb
+++ b/features/step_definitions/unsafe_browser.rb
@@ -13,7 +13,8 @@ def supported_torbrowser_languages
File.read(localization_descriptions).split("\n").map do |line|
# The line will be of the form "xx:YY:..." or "xx-YY:YY:..."
first, second = line.sub('-', '_').split(':')
- candidates = ["#{first}_#{second}.utf8", "#{first}.utf8",
+ candidates = ["#{first}_#{second}.UTF-8", "#{first}_#{second}.utf8",
+ "#{first}.UTF-8", "#{first}.utf8",
"#{first}_#{second}", first]
when_not_found = Proc.new { raise "Could not find a locale for '#{line}'" }
candidates.find(when_not_found) do |candidate|
diff --git a/features/step_definitions/untrusted_partitions.rb b/features/step_definitions/untrusted_partitions.rb
index 751986a..603c8b4 100644
--- a/features/step_definitions/untrusted_partitions.rb
+++ b/features/step_definitions/untrusted_partitions.rb
@@ -55,7 +55,7 @@ end
Then /^Tails Greeter has( not)? detected a persistence partition$/ do |no_persistence|
expecting_persistence = no_persistence.nil?
@screen.find('TailsGreeter.png')
- found_persistence = ! @screen.exists('TailsGreeterPersistence.png').nil?
+ found_persistence = ! @screen.exists('TailsGreeterPersistencePassphrase.png').nil?
assert_equal(expecting_persistence, found_persistence,
"Persistence is unexpectedly#{no_persistence} enabled")
end
diff --git a/features/step_definitions/usb.rb b/features/step_definitions/usb.rb
index ce91b15..c45b450 100644
--- a/features/step_definitions/usb.rb
+++ b/features/step_definitions/usb.rb
@@ -165,17 +165,7 @@ When /^I fail to "([^"]*)" Tails to USB drive "([^"]+)"$/ do |mode, name|
end
end
-Given /^I setup a filesystem share containing the Tails ISO$/ do
- shared_iso_dir_on_host = "#{$config["TMPDIR"]}/shared_iso_dir"
- @shared_iso_dir_on_guest = "/tmp/shared_iso_dir"
- FileUtils.mkdir_p(shared_iso_dir_on_host)
- FileUtils.cp(TAILS_ISO, shared_iso_dir_on_host)
- add_after_scenario_hook { FileUtils.rm_r(shared_iso_dir_on_host) }
- $vm.add_share(shared_iso_dir_on_host, @shared_iso_dir_on_guest)
-end
-
When /^I do a "Upgrade from ISO" on USB drive "([^"]+)"$/ do |name|
- iso_path_on_guest = "#{@shared_iso_dir_on_guest}/#{File.basename(TAILS_ISO)}"
step 'I start Tails Installer in "Upgrade from ISO" mode'
@installer.child('Use existing Live system ISO:', roleName: 'label')
.parent.button('(None)').click
@@ -183,7 +173,7 @@ When /^I do a "Upgrade from ISO" on USB drive "([^"]+)"$/ do |name|
file_chooser.wait(10)
@screen.type("l", Sikuli::KeyModifier.CTRL)
# The only visible text element will be the path entry
- file_chooser.child(roleName: 'text').text = iso_path_on_guest
+ file_chooser.child(roleName: 'text').text = @iso_path
file_chooser.button('Open').click
usb_install_helper(name)
end
@@ -287,10 +277,9 @@ Then /^the running Tails is installed on USB drive "([^"]+)"$/ do |target_name|
end
Then /^the ISO's Tails is installed on USB drive "([^"]+)"$/ do |target_name|
- iso = "#{@shared_iso_dir_on_guest}/#{File.basename(TAILS_ISO)}"
iso_root = "/mnt/iso"
$vm.execute("mkdir -p #{iso_root}")
- $vm.execute("mount -o loop #{iso} #{iso_root}")
+ $vm.execute("mount -o loop #{@iso_path} #{iso_root}")
tails_is_installed_helper(target_name, iso_root, "isolinux")
$vm.execute("umount #{iso_root}")
end
@@ -343,12 +332,9 @@ Then /^a Tails persistence partition exists on USB drive "([^"]+)"$/ do |name|
end
Given /^I enable persistence$/ do
- @screen.wait('TailsGreeterPersistence.png', 10)
- @screen.type(Sikuli::Key.SPACE)
- @screen.wait('TailsGreeterPersistencePassphrase.png', 10)
- match = @screen.find('TailsGreeterPersistencePassphrase.png')
- @screen.click(match.getCenter.offset(match.w*2, match.h/2))
- @screen.type(@persistence_password)
+ @screen.wait_and_click('TailsGreeterPersistencePassphrase.png', 10)
+ @screen.type(@persistence_password + Sikuli::Key.ENTER)
+ @screen.wait('TailsGreeterPersistenceUnlocked.png', 30)
end
def tails_persistence_enabled?
diff --git a/features/support/helpers/storage_helper.rb b/features/support/helpers/storage_helper.rb
index 0e452ed..9cf0db2 100644
--- a/features/support/helpers/storage_helper.rb
+++ b/features/support/helpers/storage_helper.rb
@@ -144,13 +144,7 @@ class VMStorage
end
def disk_mklabel(name, parttype)
- disk = {
- :path => disk_path(name),
- :opts => {
- :format => disk_format(name)
- }
- }
- guestfs_disk_helper(disk) do |g, disk_handle|
+ guestfs_disk_helper(name) do |g, disk_handle|
g.part_init(disk_handle, parttype)
end
end
@@ -158,13 +152,7 @@ class VMStorage
def disk_mkpartfs(name, parttype, fstype, opts = {})
opts[:label] ||= nil
opts[:luks_password] ||= nil
- disk = {
- :path => disk_path(name),
- :opts => {
- :format => disk_format(name)
- }
- }
- guestfs_disk_helper(disk) do |g, disk_handle|
+ guestfs_disk_helper(name) do |g, disk_handle|
g.part_disk(disk_handle, parttype)
g.part_set_name(disk_handle, 1, opts[:label]) if opts[:label]
primary_partition = g.list_partitions()[0]
@@ -182,13 +170,7 @@ class VMStorage
end
def disk_mkswap(name, parttype)
- disk = {
- :path => disk_path(name),
- :opts => {
- :format => disk_format(name)
- }
- }
- guestfs_disk_helper(disk) do |g, disk_handle|
+ guestfs_disk_helper(name) do |g, disk_handle|
g.part_disk(disk_handle, parttype)
primary_partition = g.list_partitions()[0]
g.mkswap(primary_partition)
@@ -206,7 +188,13 @@ class VMStorage
Guestfs::EVENT_TRACE)
g.set_autosync(1)
disks.each do |disk|
- g.add_drive_opts(disk[:path], disk[:opts])
+ if disk.class == String
+ g.add_drive_opts(disk_path(disk), format: disk_format(disk))
+ elsif disk.class == Hash
+ g.add_drive_opts(disk[:path], disk[:opts])
+ else
+ raise "cannot handle type '#{disk.class}'"
+ end
end
g.launch()
yield(g, *g.list_devices())
diff --git a/features/torified_browsing.feature b/features/torified_browsing.feature
index 9ea1909..33e8f41 100644
--- a/features/torified_browsing.feature
+++ b/features/torified_browsing.feature
@@ -105,7 +105,7 @@ Feature: Browsing the web using the Tor Browser
Scenario: The "Tails documentation" link on the Desktop works
Given I have started Tails from DVD and logged in and the network is connected
When I double-click on the "Tails documentation" link on the Desktop
- Then I see "TailsOfflineDocHomepage.png" after at most 10 seconds
+ Then I see "TailsOfflineDocHomepage.png" after at most 20 seconds
Scenario: The Tor Browser uses TBB's shared libraries
Given I have started Tails from DVD and logged in and the network is connected
diff --git a/features/torified_gnupg.feature b/features/torified_gnupg.feature
index bba2744..8bbf10f 100644
--- a/features/torified_gnupg.feature
+++ b/features/torified_gnupg.feature
@@ -14,7 +14,6 @@ Feature: Keyserver interaction with GnuPG
Scenario: Fetching OpenPGP keys using GnuPG should work and be done over Tor.
When I fetch the "10CC5BC7" OpenPGP key using the GnuPG CLI
- Then GnuPG uses the configured keyserver
And the GnuPG fetch is successful
And the "10CC5BC7" key is in the live user's public keyring
diff --git a/features/totem.feature b/features/totem.feature
index d8d9054..2944739 100644
--- a/features/totem.feature
+++ b/features/totem.feature
@@ -9,9 +9,8 @@ Feature: Using Totem
Given I create sample videos
Scenario: Watching a MP4 video stored on the non-persistent filesystem
- Given a computer
- And I setup a filesystem share containing sample videos
- And I start Tails from DVD with network unplugged and I login
+ Given I have started Tails from DVD without network and logged in
+ And I plug and mount a USB drive containing sample videos
And I copy the sample videos to "/home/amnesia" as user "amnesia"
And the file "/home/amnesia/video.mp4" exists
Given I start monitoring the AppArmor log of "/usr/bin/totem"
@@ -52,22 +51,14 @@ Feature: Using Totem
Then I can watch a WebM video over HTTPs
Scenario: Watching MP4 videos stored on the persistent volume should work as expected given our AppArmor confinement
- Given I have started Tails without network from a USB drive with a persistent partition and stopped at Tails Greeter's login screen
- # Due to bug #5571 we have to reboot to be able to use
- # filesystem shares.
- And I shutdown Tails and wait for the computer to power off
- And I setup a filesystem share containing sample videos
- And I start Tails from USB drive "__internal" with network unplugged and I login with persistence enabled
+ Given I have started Tails without network from a USB drive with a persistent partition enabled and logged in
+ And I plug and mount a USB drive containing sample videos
And I copy the sample videos to "/home/amnesia/Persistent" as user "amnesia"
- And I copy the sample videos to "/home/amnesia/.gnupg" as user "amnesia"
- And I shutdown Tails and wait for the computer to power off
- And I start Tails from USB drive "__internal" with network unplugged and I login with persistence enabled
- And the file "/home/amnesia/Persistent/video.mp4" exists
When I open "/home/amnesia/Persistent/video.mp4" with Totem
Then I see "SampleLocalMp4VideoFrame.png" after at most 40 seconds
Given I close Totem
- And the file "/home/amnesia/.gnupg/video.mp4" exists
And I start monitoring the AppArmor log of "/usr/bin/totem"
+ And I copy the sample videos to "/home/amnesia/.gnupg" as user "amnesia"
When I try to open "/home/amnesia/.gnupg/video.mp4" with Totem
Then I see "TotemUnableToOpen.png" after at most 10 seconds
And AppArmor has denied "/usr/bin/totem" from opening "/home/amnesia/.gnupg/video.mp4"
diff --git a/features/usb_upgrade.feature b/features/usb_upgrade.feature
index dd1c057..f73f634 100644
--- a/features/usb_upgrade.feature
+++ b/features/usb_upgrade.feature
@@ -11,9 +11,8 @@ Feature: Upgrading an old Tails USB installation
# dependencies (which are documented below).
Scenario: Try to "Upgrade from ISO" Tails to a pristine USB drive
- Given a computer
- And I setup a filesystem share containing the Tails ISO
- And I start Tails from DVD with network unplugged and I login
+ Given I have started Tails from DVD without network and logged in
+ And I plug and mount a USB drive containing the Tails ISO
And I temporarily create a 4 GiB disk named "pristine"
And I plug USB drive "pristine"
When I start Tails Installer in "Upgrade from ISO" mode
@@ -27,9 +26,8 @@ Feature: Upgrading an old Tails USB installation
Then I am told that the destination device cannot be upgraded
Scenario: Try to "Upgrade from ISO" Tails to a USB drive with GPT and a FAT partition
- Given a computer
- And I setup a filesystem share containing the Tails ISO
- And I start Tails from DVD with network unplugged and I login
+ Given I have started Tails from DVD without network and logged in
+ And I plug and mount a USB drive containing the Tails ISO
And I temporarily create a 4 GiB disk named "gptfat"
And I create a gpt partition with a vfat filesystem on disk "gptfat"
And I plug USB drive "gptfat"
@@ -128,8 +126,8 @@ Feature: Upgrading an old Tails USB installation
Scenario: Upgrading an old Tails USB installation from an ISO image, running on the old version
Given a computer
And I clone USB drive "old" to a new USB drive "to_upgrade"
- And I setup a filesystem share containing the Tails ISO
When I start Tails from USB drive "old" with network unplugged and I login
+ And I plug and mount a USB drive containing the Tails ISO
And I plug USB drive "to_upgrade"
And I do a "Upgrade from ISO" on USB drive "to_upgrade"
Then the ISO's Tails is installed on USB drive "to_upgrade"
@@ -137,10 +135,9 @@ Feature: Upgrading an old Tails USB installation
# Depends on scenario: Writing files to a read/write-enabled persistent partition with the old Tails USB installation
Scenario: Upgrading an old Tails USB installation from an ISO image, running on the new version
- Given a computer
+ Given I have started Tails from DVD without network and logged in
+ And I plug and mount a USB drive containing the Tails ISO
And I clone USB drive "old" to a new USB drive "to_upgrade"
- And I setup a filesystem share containing the Tails ISO
- And I start Tails from DVD with network unplugged and I login
And I plug USB drive "to_upgrade"
And I do a "Upgrade from ISO" on USB drive "to_upgrade"
Then the ISO's Tails is installed on USB drive "to_upgrade"
diff --git a/vagrant/lib/tails_build_settings.rb b/vagrant/lib/tails_build_settings.rb
index 3265663..33c3836 100644
--- a/vagrant/lib/tails_build_settings.rb
+++ b/vagrant/lib/tails_build_settings.rb
@@ -6,7 +6,7 @@
VIRTUAL_MACHINE_HOSTNAME = 'vagrant-jessie'
# Approximate amount of extra space needed for builds
-BUILD_SPACE_REQUIREMENT = 9*1024
+BUILD_SPACE_REQUIREMENT = 12.5*1024
# Virtual machine memory size for on-disk builds
VM_MEMORY_FOR_DISK_BUILDS = 512
diff --git a/vagrant/provision/setup-tails-builder b/vagrant/provision/setup-tails-builder
index 7115309..3baef06 100755
--- a/vagrant/provision/setup-tails-builder
+++ b/vagrant/provision/setup-tails-builder
@@ -68,7 +68,6 @@ apt-get -y dist-upgrade
apt-get -y install \
debootstrap/jessie-backports \
dpkg-dev \
- eatmydata \
gettext \
git \
ikiwiki \
diff --git a/wiki/src/contribute/build.mdwn b/wiki/src/contribute/build.mdwn
index f0f99eb..2f71da0 100644
--- a/wiki/src/contribute/build.mdwn
+++ b/wiki/src/contribute/build.mdwn
@@ -301,7 +301,6 @@ The following Debian packages need to be installed:
apt-get install \
dpkg-dev \
- eatmydata \
gettext \
ikiwiki \
intltool \
diff --git a/wiki/src/contribute/release_process/test/automated_tests.mdwn b/wiki/src/contribute/release_process/test/automated_tests.mdwn
index ff184f4..ac0ec90 100644
--- a/wiki/src/contribute/release_process/test/automated_tests.mdwn
+++ b/wiki/src/contribute/release_process/test/automated_tests.mdwn
@@ -217,10 +217,6 @@ This step:
* makes sure that Tails Greeter starts
* makes sure that the remote shell is up and running
- And I enable more Tails Greeter options
-
-This is required for steps enabling Tails Greeter options, like the
-next one.
Note that the "I set sudo password ..." step has to be run before the
other Tails Greeter option steps as it relies on keyboard navigation.
@@ -350,25 +346,6 @@ Although very rare, the remote shell can get into a state where it
stops responding, resulting in the test suite waiting for a response
forever.
-## Host-to-guest filesystem shares are incompatibile with snapshots
-
-Filesystem shares cannot (due to QEMU limitations) be added to an
-active VM, and cannot (due to QEMU limitations) be active
-(i.e. mounted) during a snapshot save. For this reason, don't use
-filesystem shares in combination with snapshots. For more
-information, see [[!tails_ticket 5571]].
-
-On a more practical note, you *can* add a filesystem share if you
-restore a snapshot and then power off the computer, which still is
-worth it when there's a big setup cost, e.g. when Tails is running
-from USB with persistence enabled. So something like this is valid,
-for example:
-
- Given Tails has booted without network from a USB drive with a persistent partition and stopped at Tails Greeter's login screen
- And I shutdown Tails and wait for the computer to power off
- And I setup some filesystem share ...
- And I start Tails from USB drive "current" with network unplugged and I login with persistence enabled
-
## Plugging SATA drives
When creating a disk (at least when backed by a `raw` image) via the
diff --git a/wiki/src/news/version_3.0.mdwn b/wiki/src/news/version_3.0.mdwn
index f4b9323..bdacceb 100644
--- a/wiki/src/news/version_3.0.mdwn
+++ b/wiki/src/news/version_3.0.mdwn
@@ -1,2 +1,2 @@
-* Mention that pressing the power button doesn't trigger emergency
+* Mention that pressing the power, sleep, hibernate or suspend button doesn't trigger emergency
shutdown anymore.