Feature #8966

Automatic tests for IRC CTCP in Pidgin

Added by anonym 2015-02-27 15:37:03 . Updated 2015-03-23 01:59:39 .

Status:
Resolved
Priority:
Elevated
Assignee:
Category:
Test suite
Target version:
Start date:
2015-02-27
Due date:
% Done:

100%

Feature Branch:
test/7820-pidgin-irc-ctcp
Type of work:
Code
Blueprint:

Starter:
Affected tool:
Instant Messaging
Deliverable for:

Description


Files


Subtasks


History

#1 Updated by BitingBird 2015-02-27 17:48:57

  • Affected tool set to Instant Messaging

#2 Updated by kytv 2015-02-27 23:39:33

The code looks good. I have not been able to test it, however, because OFTC is currently blocking Tor—again. :|

#3 Updated by kytv 2015-02-28 02:48:53

  • Assignee changed from kytv to anonym
  • QA Check changed from Ready for QA to Dev Needed

I haven’t spotted why—yet—but I consistently see the following

    And I press the "ENTER" key                                                    # features/step_definitions/common_steps.rb:820
    Then I see the Tails roadmap URL                                               # features/step_definitions/pidgin.rb:230
[log] CLICK on (451,375)
    When I click on the Tails roadmap URL                                          # features/step_definitions/pidgin.rb:234
    Then the Tor Browser has started and loaded the Tails roadmap                  # features/step_definitions/common_steps.rb:343
calling as amnesia: cat $HOME/.purple/accounts.xml
call returned: [0, "<?xml version='1.0' encoding='UTF-8' ?>\n\n<account version='1.0'>\n\t<account>\n\t\t<protocol>prpl-irc</protocol>\n\t\t<name>wookesco@irc.oftc.net</name>\n\t\t<statuses>\n\t\t\t<status type='available' name='Available' active='true'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t\t<status type='away' name='Away' active='false'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t\t<status type='offline' name='Offline' active='false'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t</statuses>\n\t\t<settings>\n\t\t\t<setting name='realname' type='string'>wookesco</setting>\n\t\t\t<setting name='username' type='string'>wookesco</setting>\n\t\t\t<setting name='port' type='int'>6697</setting>\n\t\t\t<setting name='ssl' type='bool'>1</setting>\n\t\t\t<setting name='encoding' type='string'>UTF-8,ISO-8859-1</setting>\n\t\t</settings>\n\t\t<settings ui='gtk-gaim'>\n\t\t\t<setting name='auto-login' type='bool'>1</setting>\n\t\t</settings>\n\t\t<current_error/>\n\t</account>\n\t<account>\n\t\t<protocol>prpl-irc</protocol>\n\t\t<name>wookesco@127.0.0.1</name>\n\t\t<statuses>\n\t\t\t<status type='available' name='Available' active='true'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t\t<status type='away' name='Away' active='false'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t\t<status type='offline' name='Offline' active='false'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t</statuses>\n\t\t<settings>\n\t\t\t<setting name='realname' type='string'>wookesco</setting>\n\t\t\t<setting name='username' type='string'>wookesco</setting>\n\t\t\t<setting name='port' type='int'>6668</setting>\n\t\t\t<setting name='ssl' type='bool'>0</setting>\n\t\t\t<setting name='encoding' type='string'>UTF-8,ISO-8859-1</setting>\n\t\t</settings>\n\t\t<settings ui='gtk-gaim'>\n\t\t\t<setting name='auto-login' type='bool'>0</setting>\n\t\t</settings>\n\t\t<proxy>\n\t\t\t<type>none</type>\n\t\t</proxy>\n\t\t<current_error/>\n\t</account>\n</account>\n", ""]
    And the "irc.oftc.net" account only responds to PING and VERSION CTCP requests # features/step_definitions/pidgin.rb:116
      undefined method `tr' for true:TrueClass (NoMethodError)
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:108:in `block in post'
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:104:in `map'
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:104:in `post'
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:29:in `start'
      ./features/step_definitions/pidgin.rb:142:in `block (2 levels) in <top (required)>'
      /usr/lib/ruby/1.9.1/timeout.rb:68:in `timeout'
      ./features/step_definitions/pidgin.rb:141:in `/^the "([^"]*)" account only responds to PING and VERSION CTCP requests$/'
      features/pidgin.feature:29:in `And the "irc.oftc.net" account only responds to PING and VERSION CTCP requests'
Scenario failed at time 00:07:29

#4 Updated by anonym 2015-03-01 19:05:38

  • Assignee changed from anonym to kytv
  • QA Check changed from Dev Needed to Info Needed

kytv wrote:
> I haven’t spotted why—yet—but I consistently see the following

You error is very odd, and I presume you’re also using ruby-net-irc version 0.0.9-2?

> @ /usr/lib/ruby/vendor_ruby/net/irc/client.rb:29:in `start’@

So this looks like this:

def start
  [...]
  post PASS, @opts.pass if @opts.pass
  [...]

where @opts will be the @bot_opts we use when creating the bot instance, and it certainly doesn’t set :pass, so you shouldn’t get this. What happens if you apply the following:

--- a/features/step_definitions/pidgin.rb
+++ b/features/step_definitions/pidgin.rb
@@ -127,7 +127,8 @@ Then /^the "([^"]*)" account only responds to PING and VERSION CTCP requests$/ d
     :nick => bot_nick,
     :user => bot_nick,
     :real => bot_nick,
-    :spam_target => configured_pidgin_accounts[irc_server]["nickname"]
+    :spam_target => configured_pidgin_accounts[irc_server]["nickname"],
+    :pass => nil
   }
   bot_opts[:logger] = Logger.new("/dev/null") if !$config["DEBUG"]
   bot = CtcpSpammer.new(irc_server, 6667, bot_opts)

#5 Updated by kytv 2015-03-02 00:19:09

  • Assignee changed from kytv to anonym
  • QA Check changed from Info Needed to Dev Needed

anonym wrote:
> kytv wrote:
> > I haven’t spotted why—yet—but I consistently see the following
>
> You error is very odd, and I presume you’re also using ruby-net-irc version 0.0.9-2?

Yes, but I also tried upgrading to 0.0.9-3 and got the same error.

> > @ /usr/lib/ruby/vendor_ruby/net/irc/client.rb:29:in `start’@
>
> So this looks like this:
> […]
>
> where @opts will be the @bot_opts we use when creating the bot instance, and it certainly doesn’t set :pass, so you shouldn’t get this. What happens if you apply the following:
> […]

With this patch:

    Then the Tor Browser has started and loaded the Tails roadmap                  # features/step_definitions/common_steps.rb:343
calling as amnesia: cat $HOME/.purple/accounts.xml
call returned: [0, "<?xml version='1.0' encoding='UTF-8' ?>\n\n<account version='1.0'>\n\t<account>\n\t\t<protocol>prpl-irc</protocol>\n\t\t<name>yolley_@irc.oftc.net</name>\n\t\t<statuses>\n\t\t\t<status type='available' name='Available' active='true'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t\t<status type='away' name='Away' active='false'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t\t<status type='offline' name='Offline' active='false'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t</statuses>\n\t\t<settings>\n\t\t\t<setting name='realname' type='string'>yolley_</setting>\n\t\t\t<setting name='username' type='string'>yolley_</setting>\n\t\t\t<setting name='port' type='int'>6697</setting>\n\t\t\t<setting name='ssl' type='bool'>1</setting>\n\t\t\t<setting name='encoding' type='string'>UTF-8,ISO-8859-1</setting>\n\t\t</settings>\n\t\t<settings ui='gtk-gaim'>\n\t\t\t<setting name='auto-login' type='bool'>1</setting>\n\t\t</settings>\n\t\t<current_error/>\n\t</account>\n\t<account>\n\t\t<protocol>prpl-irc</protocol>\n\t\t<name>yolley_@127.0.0.1</name>\n\t\t<statuses>\n\t\t\t<status type='available' name='Available' active='true'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t\t<status type='away' name='Away' active='false'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t\t<status type='offline' name='Offline' active='false'>\n\t\t\t\t<attributes/>\n\t\t\t</status>\n\t\t</statuses>\n\t\t<settings>\n\t\t\t<setting name='realname' type='string'>yolley_</setting>\n\t\t\t<setting name='username' type='string'>yolley_</setting>\n\t\t\t<setting name='port' type='int'>6668</setting>\n\t\t\t<setting name='ssl' type='bool'>0</setting>\n\t\t\t<setting name='encoding' type='string'>UTF-8,ISO-8859-1</setting>\n\t\t</settings>\n\t\t<settings ui='gtk-gaim'>\n\t\t\t<setting name='auto-login' type='bool'>0</setting>\n\t\t</settings>\n\t\t<proxy>\n\t\t\t<type>none</type>\n\t\t</proxy>\n\t\t<current_error/>\n\t</account>\n</account>\n", ""]
    And the "irc.oftc.net" account only responds to PING and VERSION CTCP requests # features/step_definitions/pidgin.rb:116
      undefined method `tr' for true:TrueClass (NoMethodError)
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:108:in `block in post'
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:104:in `map'
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:104:in `post'
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:29:in `start'
      ./features/step_definitions/pidgin.rb:143:in `block (2 levels) in <top (required)>'
      /usr/lib/ruby/1.9.1/timeout.rb:68:in `timeout'
      ./features/step_definitions/pidgin.rb:142:in `/^the "([^"]*)" account only responds to PING and VERSION CTCP requests$/'
      features/pidgin.feature:29:in `And the "irc.oftc.net" account only responds to PING and VERSION CTCP requests'

#6 Updated by anonym 2015-03-02 01:49:24

kytv wrote:
> anonym wrote:
> > kytv wrote:
> > > I haven’t spotted why—yet—but I consistently see the following
> >
> > You error is very odd, and I presume you’re also using ruby-net-irc version 0.0.9-2?
>
> Yes, but I also tried upgrading to 0.0.9-3 and got the same error.
>
> > > @ /usr/lib/ruby/vendor_ruby/net/irc/client.rb:29:in `start’@
> >
> > So this looks like this:
> > […]
> >
> > where @opts will be the @bot_opts we use when creating the bot instance, and it certainly doesn’t set :pass, so you shouldn’t get this. What happens if you apply the following:
> > […]
>
> With this patch:

Ok, so the same crap. What if you apply this debugging patch and run it again?

--- a/features/support/helpers/ctcp_helper.rb
+++ b/features/support/helpers/ctcp_helper.rb
@@ -1,5 +1,23 @@
 require 'net/irc'

+class Net::IRC::Client
+
+  alias :__overridden_start :start
+
+  def start(*args)
+    STDERR.puts "XXX Net::IRC::Client options:\n#{@opts}\nXXX -----"
+    begin
+      STDERR.puts "XXX @opts.pass test: '#{@opts.pass}' (#{@opts.pass.class})"
+    rescue Exceptions => e
+      STDERR.puts "XXX Got exception: #{e}"
+    else
+      STDERR.puts "XXX Got *no* exception"
+    end
+    __overridden_start(*args)
+  end
+
+end
+
 class CtcpSpammer < Net::IRC::Client

   # PING and VERSION must be last so they are tried last below. It's

I get:

XXX Net::IRC::Client options:
#<OpenStruct nick="wsaVIbFAml1sxb", user="wsaVIbFAml1sxb", real="wsaVIbFAml1sxb", spam_target="arin">
XXX -----
XXX @opts.pass test: '' (NilClass)
XXX Got *no* exception

which makes sense, and shows that your situation shouldn’t be possible. :)

#7 Updated by kytv 2015-03-02 03:29:04

anonym wrote:

>
> I get:
>
> […]
>
> which makes sense, and shows that your situation shouldn’t be possible. :)

I dunno what’s going on here.

With the debugging patch:

XXX Net::IRC::Client options:
#<OpenStruct nick="YlgQksCYNZj", user="YlgQksCYNZj", real="YlgQksCYNZj", spam_target="wank">
XXX -----
XXX @opts.pass test: 'true' (TrueClass)
XXX Got *no* exception

#8 Updated by anonym 2015-03-02 22:03:27

  • Assignee changed from anonym to kytv
  • QA Check changed from Dev Needed to Info Needed

LOL at the random nickname you got in your Pidgin account (same as :spam_target)! :)

Anyway, strange stuff. What happens if you apply both of the above patches? I get:

XXX Net::IRC::Client options:
#<OpenStruct nick="sRdJf6ipbUj", user="sRdJf6ipbUj", real="sRdJf6ipbUj", spam_target="celika", pass=nil>
XXX -----
XXX @opts.pass test: '' (NilClass)
XXX Got *no* exception


as I would expect.

#9 Updated by kytv 2015-03-03 00:00:03

  • Assignee changed from kytv to anonym
  • QA Check changed from Info Needed to Dev Needed

With both of the above patches:

nt_error/>\n\t</account>\n</account>\n", ""]
XXX Net::IRC::Client options:
#<OpenStruct nick="YZfI3K4b0MuCkAu", user="YZfI3K4b0MuCkAu", real="YZfI3K4b0MuCkAu", spam_target="tyrus", pass=nil>
XXX -----
XXX @opts.pass test: 'true' (TrueClass)
XXX Got *no* exception

To be clear, my workspace looks like the following:

diff --git a/features/step_definitions/common_steps.rb b/features/step_definitions/common_steps.rb
index 12cbc9c..9dc3adc 100644
--- a/features/step_definitions/common_steps.rb
+++ b/features/step_definitions/common_steps.rb
@@ -779,12 +779,14 @@ Given /^I start "([^"]+)" via the GNOME "([^"]+)" applications menu$/ do |app, s
     prefix = 'Gnome'
   end
   @screen.wait_and_click(prefix + "ApplicationsMenu.png", 10)
-  @screen.hide_cursor
   # Wait for the menu to be displayed, by waiting for one of its last entries
   @screen.wait(prefix + "ApplicationsTails.png", 40)
-  @screen.wait_and_hover(prefix + "Applications" + submenu + ".png", 40)
-  @screen.hide_cursor
-  @screen.wait_and_click(prefix + "Applications" + app + ".png", 40)
+  r = @screen.wait(prefix + "Applications" + submenu + ".png", 40)
+  y = r.getCenter.getY
+  @screen.hover(r)
+  r = @screen.wait(prefix + "Applications" + app + ".png", 40)
+  @screen.hover(Sikuli::Location.new(r.getCenter.getX, y))
+  @screen.click(r)
 end

 Given /^I start "([^"]+)" via the GNOME "([^"]+)"\/"([^"]+)" applications menu$/ do |app, submenu, subsubmenu|
@@ -796,14 +798,18 @@ Given /^I start "([^"]+)" via the GNOME "([^"]+)"\/"([^"]+)" applications menu$/
     prefix = 'Gnome'
   end
   @screen.wait_and_click(prefix + "ApplicationsMenu.png", 10)
-  @screen.hide_cursor
   # Wait for the menu to be displayed, by waiting for one of its last entries
   @screen.wait(prefix + "ApplicationsTails.png", 40)
-  @screen.wait_and_hover(prefix + "Applications" + submenu + ".png", 20)
-  @screen.hide_cursor
-  @screen.wait_and_hover(prefix + "Applications" + subsubmenu + ".png", 20)
-  @screen.hide_cursor
-  @screen.wait_and_click(prefix + "Applications" + app + ".png", 20)
+  r = @screen.wait(prefix + "Applications" + submenu + ".png", 20)
+  y = r.getCenter.getY
+  @screen.hover(r)
+  r = @screen.wait(prefix + "Applications" + subsubmenu + ".png", 20)
+  @screen.hover(Sikuli::Location.new(r.getCenter.getX, y))
+  y = r.getCenter.getY
+  @screen.hover(r)
+  r = @screen.wait(prefix + "Applications" + app + ".png", 20)
+  @screen.hover(Sikuli::Location.new(r.getCenter.getX, y))
+  @screen.click(r)
 end

 When /^I type "([^"]+)"$/ do |string|
diff --git a/features/step_definitions/pidgin.rb b/features/step_definitions/pidgin.rb
index 9908c91..715c2b1 100644
--- a/features/step_definitions/pidgin.rb
+++ b/features/step_definitions/pidgin.rb
@@ -127,7 +127,8 @@ Then /^the "([^"]*)" account only responds to PING and VERSION CTCP requests$/ d
     :nick => bot_nick,
     :user => bot_nick,
     :real => bot_nick,
-    :spam_target => configured_pidgin_accounts[irc_server]["nickname"]
+    :spam_target => configured_pidgin_accounts[irc_server]["nickname"],
+    :pass => nil
   }
   bot_opts[:logger] = Logger.new("/dev/null") if !$config["DEBUG"]
   bot = CtcpSpammer.new(irc_server, 6667, bot_opts)
diff --git a/features/support/helpers/ctcp_helper.rb b/features/support/helpers/ctcp_helper.rb
index a1bb264..ae26833 100644
--- a/features/support/helpers/ctcp_helper.rb
+++ b/features/support/helpers/ctcp_helper.rb
@@ -1,5 +1,23 @@
 require 'net/irc'

+class Net::IRC::Client
+
+  alias :__overridden_start :start
+
+  def start(*args)
+    STDERR.puts "XXX Net::IRC::Client options:\n#{@opts}\nXXX -----" 
+    begin
+      STDERR.puts "XXX @opts.pass test: '#{@opts.pass}' (#{@opts.pass.class})" 
+    rescue Exceptions => e
+      STDERR.puts "XXX Got exception: #{e}" 
+    else
+      STDERR.puts "XXX Got *no* exception" 
+    end
+    __overridden_start(*args)
+  end
+
+end
+
 class CtcpSpammer < Net::IRC::Client

   # PING and VERSION must be last so they are tried last below. It's
diff --git a/run_test_suite b/run_test_suite
index d173619..e3403de 100755
--- a/run_test_suite
+++ b/run_test_suite
@@ -75,7 +75,7 @@ start_xvfb() {
     done
     echo "Virtual X framebuffer started on display ${TARGET_DISPLAY}"
     # Hide the mouse cursor so it won't mess up Sikuli's screen scanning
-    unclutter -display $TARGET_DISPLAY -root -idle 0 >/dev/null 2>&1 &
+    #unclutter -display $TARGET_DISPLAY -root -idle 0 >/dev/null 2>&1 &
 }

 start_vnc_server() {

and

# dpkg -l '*ruby*' |awk '/^ii/{print $2, $3}'
libruby1.8 1.8.7.358-7.1+deb7u1
libruby1.9.1 1.9.3.194-8.1+deb7u2
libvirt-ruby 0.4.0-1
ruby 1:1.9.3
ruby-blankslate 2.1.2.4-4
ruby-builder 3.0.0-3
ruby-diff-lcs 1.1.3-1
ruby-gherkin 2.12.1-1~bpo70+1
ruby-guestfs 1:1.18.1-1+deb7u3
ruby-json 1.7.3-3
ruby-libvirt 0.4.0-1
ruby-multi-json 1.8.0-1~bpo70+1
ruby-net-irc 0.0.9-2
ruby-oj 2.0.10-1~bpo70+1
ruby-packetfu 1.1.8-1~bpo70+1
ruby-pcaprub 0.11.3-1~bpo70+1
ruby-rjb 1.4.8-1~bpo70+1
ruby-rspec 2.10.0-2
ruby-rspec-core 2.10.1-2
ruby-rspec-expectations 2.10.0-2
ruby-rspec-mocks 2.10.1-2
ruby-yajl 1.1.0-2
ruby1.9.1 1.9.3.194-8.1+deb7u2

#10 Updated by kytv 2015-03-03 12:21:23

To rule out any sort of conflicts in case there’s something wrong with my test VM (I’m trying to provide applicable info before it’s asked for):

root@testsuite:~# dpkg -l | awk /^ii/{'printf "%-30s\t%s\n", $2, $3'} 
acl                             2.2.51-8
acpi                            1.6-1
acpi-support-base               0.140-5+deb7u3
acpid                           1:2.0.16-1+deb7u1
adduser                         3.113+nmu3
antlr3                          3.2-7
apt                             0.9.7.9+deb7u7
apt-cacher-ng                   0.8.0-3~bpo70+1
apt-show-versions               0.20
apt-utils                       0.9.7.9+deb7u7
aptitude                        0.6.8.2-1
aptitude-common                 0.6.8.2-1
at                              3.1.13-2+deb7u1
attr                            1:2.4.46-8
augeas-lenses                   0.10.0-1
autoconf                        2.69-1
automake                        1:1.11.6-1
autopoint                       0.18.1.1-9
autotools-dev                   20120608.1
base-files                      7.1wheezy8
base-passwd                     3.5.26
bash                            4.2+dfsg-0.1+deb7u3
binutils                        2.22-8
bridge-utils                    1.5-6
bsdmainutils                    9.0.3
bsdutils                        1:2.20.1-5.3
btrfs-tools                     0.19+20120328-7.1
build-essential                 11.5
busybox                         1:1.20.0-7
bzip2                           1.0.6-4
ca-certificates                 20130119+deb7u1
ca-certificates-java            20121112+nmu2
colord                          0.1.21-1
console-setup                   1.88
console-setup-linux             1.88
consolekit                      0.4.5-3.1
coreutils                       8.13-3.5
cpio                            2.11+dfsg-0.1+deb7u1
cpp                             4:4.7.2-1
cpp-4.7                         4.7.2-5
cron                            3.0pl1-124
cryptsetup                      2:1.4.3-4
cryptsetup-bin                  2:1.4.3-4
cucumber                        1.3.8-1~bpo70+1
curl                            7.26.0-1+wheezy11
dash                            0.5.7-3
dbus                            1.6.8-1+deb7u5
dbus-x11                        1.6.8-1+deb7u5
dconf-gsettings-backend:amd64   0.12.1-3
dconf-service                   0.12.1-3
dctrl-tools                     2.22.2
debconf                         1.5.49
debconf-i18n                    1.5.49
debfoster                       2.7-1.2
debhelper                       9.20120909
debian-archive-keyring          2014.3~deb7u1
debian-keyring                  2013.04.21
debianutils                     4.3.2
debootstrap                     1.0.48+deb7u2
debsums                         2.0.52+deb7u1
default-jdk                     1:1.6-47
default-jre                     1:1.6-47
default-jre-headless            1:1.6-47
desktop-file-utils              0.20-0.1
devscripts                      2.12.6+deb7u2
diffstat                        1.55-3
diffutils                       1:3.2-6
discover                        2.1.2-5.2
discover-data                   2.2010.10.18
distro-info-data                0.17~deb7u1
dmidecode                       2.11-9
dmsetup                         2:1.02.74-8
dnsmasq-base                    2.62-3+deb7u1
dosfstools                      3.0.13-1
dpkg                            1.16.15
dpkg-dev                        1.16.15
dput                            0.9.6.3+nmu2
e2fslibs:amd64                  1.42.5-1.1
e2fsprogs                       1.42.5-1.1
eatmydata                       26-2
ebtables                        2.0.10.4-1
ed                              1.6-2
eject                           2.1.5+deb1+cvs20081104-13
equivs                          2.0.9
esound-common                   0.2.41-10
exim4-base                      4.80-7+deb7u1
exim4-config                    4.80-7+deb7u1
exim4-daemon-light              4.80-7+deb7u1
fakeroot                        1.18.4-2
febootstrap                     3.17-1
ffmpeg                          6:0.8.16-1
file                            5.11-2+deb7u6
findutils                       4.4.2-4
fontconfig                      2.9.0-7.1
fontconfig-config               2.9.0-7.1
fonts-droid                     20111207+git-1
fuse                            2.9.0-2+deb7u1
g++                             4:4.7.2-1
g++-4.7                         4.7.2-5
gawk                            1:4.0.1+dfsg-2.1
gcc                             4:4.7.2-1
gcc-4.7                         4.7.2-5
gcc-4.7-base:amd64              4.7.2-5
gconf-service                   3.2.5-1+build1
gconf2                          3.2.5-1+build1
gconf2-common                   3.2.5-1+build1
gettext                         0.18.1.1-9
gettext-base                    0.18.1.1-9
ghostscript                     9.05~dfsg-6.3+deb7u1
git                             1:1.7.10.4-1+wheezy1
git-man                         1:1.7.10.4-1+wheezy1
git-sh                          1.1-1
gnome-mime-data                 2.18.0-1
gnupg                           1.4.12-7+deb7u6
gpgv                            1.4.12-7+deb7u6
gpicview                        0.2.3-2
grep                            2.12-2
groff-base                      1.21-9
grub-common                     1.99-27+deb7u2
grub-pc                         1.99-27+deb7u2
grub-pc-bin                     1.99-27+deb7u2
grub2-common                    1.99-27+deb7u2
gsfonts                         1:8.11+urwcyr1.0.7~pre44-4.2
gvfs:amd64                      1.12.3-4
gvfs-common                     1.12.3-4
gvfs-daemons                    1.12.3-4
gvfs-libs:amd64                 1.12.3-4
gzip                            1.5-1.1
hardening-includes              2.2
hdparm                          9.39-1+b1
heirloom-mailx                  12.5-2+deb7u1
hicolor-icon-theme              0.12-1
hostname                        3.11
html2text                       1.3.2a-15
htop                            1.0.1-1
i18nspector                     0.16-1~bpo70+1
icedtea-6-jre-cacao:amd64       6b27-1.12.5-1
icedtea-6-jre-jamvm:amd64       6b27-1.12.5-1
icedtea-7-jre-cacao:amd64       7u3-2.1.7-1
icedtea-7-jre-jamvm:amd64       7u3-2.1.7-1
icedtea-netx:amd64              1.3.2-1
icedtea-netx-common             1.3.2-1
icoutils                        0.29.1-5
ifupdown                        0.7.8
imagemagick-common              8:6.7.7.10-5+deb7u3
info                            4.13a.dfsg.1-10
init-system-helpers             1.18~bpo70+1
initramfs-tools                 0.109.1
initscripts                     2.88dsf-41+deb7u1
insserv                         1.14.0-5
install-info                    4.13a.dfsg.1-10
intltool                        0.50.2-2
intltool-debian                 0.35.0+20060710.1
iotop                           0.4.4-4
iproute                         1:3.16.0-2~bpo70+1
iproute2                        3.16.0-2~bpo70+1
iptables                        1.4.14-3.1
iputils-ping                    3:20101006-1+b1
ipxe-qemu                       1.0.0+git-20131111.c3d1e78-2.1~bpo70+1
isc-dhcp-client                 4.2.2.dfsg.1-5+deb70u6
isc-dhcp-common                 4.2.2.dfsg.1-5+deb70u6
iso-codes                       3.41-1
java-common                     0.47
javascript-common               7
jfsutils                        1.1.15-2
jython                          2.5.2-1
kbd                             1.15.3-9
keyboard-configuration          1.88
klibc-utils                     2.0.1-3.1
kmod                            9-3
kpartx                          0.4.9+git0.4dfdaf2b-7~deb7u2
krb5-locales                    1.10.1+dfsg-5+deb7u2
laptop-detect                   0.13.7
less                            444-4
libaa1:amd64                    1.4p5-40
libaacs0:amd64                  0.4.0-1
libacl1:amd64                   2.2.51-8
libaio1:amd64                   0.3.109-3
libalgorithm-diff-perl          1.19.02-2
libalgorithm-diff-xs-perl       0.04-2+b1
libalgorithm-merge-perl         0.08-2
libantlr-java                   2.7.7+dfsg-4
libapparmor1                    2.7.103-4
libapt-inst1.5:amd64            0.9.7.9+deb7u7
libapt-pkg-perl                 0.1.26+b1
libapt-pkg4.12:amd64            0.9.7.9+deb7u7
libarchive-zip-perl             1.30-6
libasm3-java                    3.3.2-1
libasound2:amd64                1.0.25-4
libasprintf0c2:amd64            0.18.1.1-9
libasyncns0:amd64               0.8-4
libatasmart4:amd64              0.19-1
libatk-wrapper-java             0.30.4-3
libatk-wrapper-java-jni:amd64   0.30.4-3
libatk1.0-0:amd64               2.4.0-2
libatk1.0-data                  2.4.0-2
libatm1:amd64                   1:2.5.1-1.5
libattr1:amd64                  1:2.4.46-8
libaudiofile1:amd64             0.3.4-2
libaudit0                       1:1.7.18-1.1
libaugeas0                      0.10.0-1
libav-tools                     6:0.8.16-1
libavahi-client3:amd64          0.6.31-2
libavahi-common-data:amd64      0.6.31-2
libavahi-common3:amd64          0.6.31-2
libavahi-glib1:amd64            0.6.31-2
libavcodec-extra-53:amd64       6:0.8.16-1
libavdevice53:amd64             6:0.8.16-1
libavfilter2:amd64              6:0.8.16-1
libavformat53:amd64             6:0.8.16-1
libavutil51:amd64               6:0.8.16-1
libblkid1:amd64                 2.20.1-5.3
libbluetooth3:amd64             4.99-2
libbluray1:amd64                1:0.2.2-1
libbonobo2-0                    2.24.3-1
libbonobo2-common               2.24.3-1
libboost-iostreams1.49.0        1.49.0-3.2
libboost-thread1.49.0           1.49.0-3.2
libbrlapi0.5:amd64              4.4-10+deb7u1
libbsd0:amd64                   0.4.2-1
libbz2-1.0:amd64                1.0.6-4
libc-bin                        2.13-38+deb7u6
libc-dev-bin                    2.13-38+deb7u6
libc6:amd64                     2.13-38+deb7u6
libc6-dev:amd64                 2.13-38+deb7u6
libcaca0:amd64                  0.99.beta18-1
libcairo-gobject2:amd64         1.12.2-3
libcairo2:amd64                 1.12.2-3
libcanberra0:amd64              0.28-6
libcap-ng0                      0.6.6-2
libcap2:amd64                   1:2.22-1.2
libcap2-bin                     1:2.22-1.2
libcdio-cdda1                   0.83-4
libcdio-paranoia1               0.83-4
libcdio13                       0.83-4
libcdparanoia0                  3.10.2+debian-10.1
libck-connector0:amd64          0.4.5-3.1
libclass-accessor-perl          0.34-1
libclass-inspector-perl         1.27-1
libclass-isa-perl               0.36-3
libclone-perl                   0.31-1+b2
libcolord1:amd64                0.1.21-1
libcomerr2:amd64                1.42.5-1.1
libcommon-sense-perl            3.6-1
libconstantine-java             0.7-3
libconvert-binhex-perl          1.119+pristine-3
libcroco3:amd64                 0.6.6-2
libcrypt-passwdmd5-perl         1.3-10
libcrypt-ssleay-perl            0.58-1
libcryptsetup4                  2:1.4.3-4
libcups2:amd64                  1.5.3-5+deb7u4
libcupsimage2:amd64             1.5.3-5+deb7u4
libcurl3:amd64                  7.26.0-1+wheezy11
libcurl3-gnutls:amd64           7.26.0-1+wheezy11
libcwidget3                     0.5.16-3.4
libdatrie1:amd64                0.2.5-3
libdb5.1:amd64                  5.1.29-5
libdbus-1-3:amd64               1.6.8-1+deb7u5
libdbus-glib-1-2:amd64          0.100.2-1
libdc1394-22:amd64              2.2.0-2
libdca0                         0.0.5-5
libdconf0:amd64                 0.12.1-3
libdevmapper-event1.02.1:amd64  2:1.02.74-8
libdevmapper1.02.1:amd64        2:1.02.74-8
libdigest-hmac-perl             1.03+dfsg-1
libdirac-encoder0:amd64         1.0.2-6
libdirectfb-1.2-9:amd64         1.2.10.0-5
libdiscover2                    2.1.2-5.2
libdistro-info-perl             0.10
libdpkg-perl                    1.16.15
libdrm-intel1:amd64             2.4.40-1~deb7u2
libdrm-nouveau1a:amd64          2.4.40-1~deb7u2
libdrm-radeon1:amd64            2.4.40-1~deb7u2
libdrm2:amd64                   2.4.40-1~deb7u2
libdvdnav4                      4.2.0+20120524-2
libdvdread4                     4.2.0+20120521-2
libedit2:amd64                  2.11-20080614-5
libemail-valid-perl             0.190-1
libenca0                        1.13-4
libencode-locale-perl           1.03-1
libept1.4.12                    1.0.9
liberror-perl                   0.17-1
libesd0:amd64                   0.2.41-10+b1
libevent-2.0-5:amd64            2.0.19-stable-3
libexif12:amd64                 0.6.20-3
libexpat1:amd64                 2.1.0-1+deb7u1
libexporter-lite-perl           0.02-2
libfaad2:amd64                  2.7-8
libfam0                         2.7.0-17
libfcgi-perl                    0.74-1+b1
libfdt1                         1.3.0-4
libffi5:amd64                   3.0.10-3
libfile-basedir-perl            0.03-1
libfile-copy-recursive-perl     0.38-1
libfile-desktopentry-perl       0.04-3
libfile-fcntllock-perl          0.14-2
libfile-fnmatch-perl            0.02-1+b2
libfile-listing-perl            6.04-1
libfile-mimeinfo-perl           0.16-1
libflac8:amd64                  1.2.1-6+deb7u1
libfont-afm-perl                1.20-1
libfontconfig1:amd64            2.9.0-7.1
libfontenc1:amd64               1:1.1.1-1
libfreetype6:amd64              2.4.9-1.1
libfribidi0:amd64               0.19.2-3
libfuse2:amd64                  2.9.0-2+deb7u1
libgc1c2                        1:7.1-9.1
libgcc1:amd64                   1:4.7.2-5
libgconf-2-4:amd64              3.2.5-1+build1
libgconf2-4:amd64               3.2.5-1+build1
libgcrypt11:amd64               1.5.0-5+deb7u2
libgd2-xpm:amd64                2.0.36~rc1~dfsg-6.1
libgdbm3:amd64                  1.8.3-11
libgdk-pixbuf2.0-0:amd64        2.26.1-1
libgdk-pixbuf2.0-common         2.26.1-1
libgdu0                         3.0.2-3
libgettextpo0:amd64             0.18.1.1-9
libgif4                         4.1.6-10
libgl1-mesa-dri:amd64           8.0.5-4+deb7u2
libgl1-mesa-glx:amd64           8.0.5-4+deb7u2
libglapi-mesa:amd64             8.0.5-4+deb7u2
libglib2.0-0:amd64              2.33.12+really2.32.4-5
libglib2.0-data                 2.33.12+really2.32.4-5
libgmp10:amd64                  2:5.0.5+dfsg-2
libgnome-keyring-common         3.4.1-1
libgnome-keyring0:amd64         3.4.1-1
libgnome2-0                     2.32.1-3
libgnome2-common                2.32.1-3
libgnomevfs2-0                  1:2.24.4-2
libgnomevfs2-common             1:2.24.4-2
libgnomevfs2-extra              1:2.24.4-2
libgnutls26:amd64               2.12.20-8+deb7u2
libgomp1:amd64                  4.7.2-5
libgpg-error0:amd64             1.10-3.1
libgphoto2-2:amd64              2.4.14-2
libgphoto2-l10n                 2.4.14-2
libgphoto2-port0:amd64          2.4.14-2
libgpm2:amd64                   1.20.4-6
libgs9                          9.05~dfsg-6.3+deb7u1
libgs9-common                   9.05~dfsg-6.3+deb7u1
libgsm1:amd64                   1.0.13-4
libgssapi-krb5-2:amd64          1.10.1+dfsg-5+deb7u2
libgtk-3-0:amd64                3.4.2-7
libgtk-3-bin                    3.4.2-7
libgtk-3-common                 3.4.2-7
libgtk-vnc-2.0-0                0.5.0-3.1
libgtk2.0-0:amd64               2.24.10-2
libgtk2.0-bin                   2.24.10-2
libgtk2.0-common                2.24.10-2
libguava-java                   11.0.2-1
libgudev-1.0-0:amd64            175-7.2
libguestfs0                     1:1.18.1-1+deb7u3
libgusb2                        0.1.3-5
libgvnc-1.0-0                   0.5.0-3.1
libhivex0:amd64                 1.3.6-2
libhtml-form-perl               6.03-1
libhtml-format-perl             2.10-1
libhtml-parser-perl             3.69-2
libhtml-tagset-perl             3.20-2
libhtml-template-perl           2.91-1
libhtml-tree-perl               5.02-1
libhttp-cookies-perl            6.00-2
libhttp-daemon-perl             6.01-1
libhttp-date-perl               6.02-1
libhttp-message-perl            6.03-1
libhttp-negotiate-perl          6.00-2
libice-dev:amd64                2:1.0.8-2
libice6:amd64                   2:1.0.8-2
libidl0                         0.8.14-0.2
libidn11:amd64                  1.25-2
libieee1284-3:amd64             0.2.11-10
libijs-0.35                     0.35-8
libilmbase6                     1.0.1-4
libio-pty-perl                  1:1.08-1+b2
libio-socket-ip-perl            0.16-2
libio-socket-ssl-perl           1.76-2
libio-string-perl               1.08-2
libio-stringy-perl              2.110-5
libipc-run-perl                 0.92-1
libiscsi2:amd64                 1.12.0-2~bpo70+1
libitm1:amd64                   4.7.2-5
libjack-jackd2-0:amd64          1.9.8~dfsg.4+20120529git007cdc37-5
libjaffl-java                   0.5.4-1.1
libjasper1:amd64                1.900.1-13+deb7u2
libjbig0:amd64                  2.0-2+deb7u1
libjbig2dec0                    0.11+20120125-1
libjffi-java                    1.0.2-9
libjffi-jni                     1.0.2-9
libjline-java                   1.0-2
libjnr-netdb-java               1.0.3-2
libjnr-posix-java               1.1.4~git1.8aa26268b-1
libjnr-x86asm-java              0.1-1
libjpeg8:amd64                  8d-1+deb7u1
libjs-jquery                    1.7.2+dfsg-1
libjson-perl                    2.53-1
libjson-xs-perl                 2.320-1+b1
libjson0:amd64                  0.10-1.2
libjsr305-java                  0.1~+svn49-4
libk5crypto3:amd64              1.10.1+dfsg-5+deb7u2
libkeyutils1:amd64              1.5.5-3+deb7u1
libklibc                        2.0.1-3.1
libkmod2:amd64                  9-3
libkrb5-3:amd64                 1.10.1+dfsg-5+deb7u2
libkrb5support0:amd64           1.10.1+dfsg-5+deb7u2
liblcms2-2:amd64                2.2+git20110628-2.2+deb7u1
libldap-2.4-2:amd64             2.4.31-1+nmu2
liblept3                        1.69-3.1
liblircclient0                  0.9.0~pre1-1
liblivetribe-jsr223-java        2.0.6-1
liblocale-gettext-perl          1.05-7+b1
liblqr-1-0:amd64                0.4.1-2
libltdl7:amd64                  2.4.2-1.1
liblvm2app2.2:amd64             2.02.95-8
liblwp-mediatypes-perl          6.02-1
liblwp-protocol-https-perl      6.03-1
liblzma5:amd64                  5.1.1alpha+20120614-2
liblzo2-2:amd64                 2.06-1+deb7u1
libmagic1:amd64                 5.11-2+deb7u6
libmagickcore5:amd64            8:6.7.7.10-5+deb7u3
libmail-sendmail-perl           0.79.16-1
libmailtools-perl               2.09-1
libmime-tools-perl              5.503-1
libmount1                       2.20.1-5.3
libmp3lame0:amd64               3.99.5+repack1-3
libmpc2:amd64                   0.9-4
libmpeg2-4                      0.4.1-3
libmpfr4:amd64                  3.1.0-5
libncurses5:amd64               5.9-10
libncursesw5:amd64              5.9-10
libnet-dbus-perl                1.0.0-1+b1
libnet-dns-perl                 0.66-2+b2
libnet-domain-tld-perl          1.69-1
libnet-http-perl                6.03-2
libnet-ip-perl                  1.25-3
libnet-ssleay-perl              1.48-1+b1
libnetcf1                       0.1.9-2
libnetfilter-conntrack3:amd64   1.0.1-1
libnetpbm10                     2:10.0-15+b1
libnewt0.52                     0.52.14-11.1
libnfnetlink0                   1.0.0-1.1
libnl1:amd64                    1.1-7
libnspr4:amd64                  2:4.9.2-1+deb7u2
libnss3:amd64                   2:3.14.5-1+deb7u3
libnss3-1d:amd64                2:3.14.5-1+deb7u3
libnuma1                        2.0.8~rc4-1
libogg0:amd64                   1.3.0-4
libopenal-data                  1:1.14-4
libopenal1:amd64                1:1.14-4
libopencore-amrnb0:amd64        0.1.3-2
libopencore-amrwb0:amd64        0.1.3-2
libopencv-calib3d2.3            2.3.1-11
libopencv-contrib2.3            2.3.1-11
libopencv-core2.3               2.3.1-11
libopencv-features2d2.3         2.3.1-11
libopencv-flann2.3              2.3.1-11
libopencv-highgui2.3            2.3.1-11
libopencv-imgproc2.3            2.3.1-11
libopencv-legacy2.3             2.3.1-11
libopencv-ml2.3                 2.3.1-11
libopencv-objdetect2.3          2.3.1-11
libopencv-video2.3              2.3.1-11
libopenexr6                     1.6.1-6
libopenjpeg2:amd64              1.3+dfsg-4.8
libopts25                       1:5.12-0.1
liborbit2                       1:2.14.19-0.1
liborc-0.4-0:amd64              1:0.4.16-2
libossp-uuid-perl               1.6.2-1.3
libossp-uuid16                  1.6.2-1.3
libotr2                         3.2.1-1+deb7u1
libp11-kit0:amd64               0.12-3
libpam-cap:amd64                1:2.22-1.2
libpam-ck-connector:amd64       0.4.5-3.1
libpam-modules:amd64            1.1.3-7.1
libpam-modules-bin              1.1.3-7.1
libpam-runtime                  1.1.3-7.1
libpam0g:amd64                  1.1.3-7.1
libpango1.0-0:amd64             1.30.0-1
libpaper-utils                  1.1.24+nmu2
libpaper1:amd64                 1.1.24+nmu2
libparse-debcontrol-perl        2.005-3
libparse-debianchangelog-perl   1.2.0-1
libparted0debian1:amd64         2.3-12
libpcap0.8:amd64                1.3.0-1
libpci3:amd64                   1:3.1.9-6
libpciaccess0:amd64             0.13.1-2
libpcre3:amd64                  1:8.30-5
libpcsclite1:amd64              1.8.4-1+deb7u1
libperl5.14                     5.14.2-21+deb7u2
libpipeline1:amd64              1.2.1-1
libpixman-1-0:amd64             0.26.0-4+deb7u1
libpng12-0:amd64                1.2.49-1
libpolkit-agent-1-0:amd64       0.105-3
libpolkit-backend-1-0:amd64     0.105-3
libpolkit-gobject-1-0:amd64     0.105-3
libpopt0:amd64                  1.16-7
libpostproc52:amd64             6:0.8.16-1
libprocps0:amd64                1:3.3.3-3
libpthread-stubs0:amd64         0.3-3
libpthread-stubs0-dev:amd64     0.3-3
libpulse0:amd64                 2.0-6.1
libquadmath0:amd64              4.7.2-5
librados2                       0.80.7-1~bpo70+1
libraw1394-11:amd64             2.0.9-1
librbd1                         0.80.7-1~bpo70+1
libreadline-java                0.8.0.1+dfsg-2+b1
libreadline5:amd64              5.2+dfsg-2~deb7u1
libreadline6:amd64              6.2+dfsg-0.1
librtmp0:amd64                  2.4+20111222.git4e06e21-1
libruby1.8                      1.8.7.358-7.1+deb7u1
libruby1.9.1                    1.9.3.194-8.1+deb7u2
libsamplerate0:amd64            0.1.8-5
libsane:amd64                   1.0.22-7.4
libsane-common                  1.0.22-7.4
libsane-extras:amd64            1.0.22.2
libsane-extras-common           1.0.22.2
libsasl2-2:amd64                2.1.25.dfsg1-6+deb7u1
libsasl2-modules:amd64          2.1.25.dfsg1-6+deb7u1
libschroedinger-1.0-0:amd64     1.0.11-2
libsdl1.2debian:amd64           1.2.15-5
libselinux1:amd64               2.1.9-5
libsemanage-common              2.1.6-6
libsemanage1:amd64              2.1.6-6
libsepol1:amd64                 2.1.4-3
libsgmls-perl                   1.03ii-32
libsgutils2-2                   1.33-1
libsigc++-2.0-0c2a:amd64        2.2.10-0.2
libsigsegv2                     2.9-4
libsikuli-script-java           1.0~x~rc3.tesseract3-dfsg1-5
libsikuli-script-jni:amd64      1.0~x~rc3.tesseract3-dfsg1-5
libslang2:amd64                 2.2.4-15
libsm-dev:amd64                 2:1.2.1-2
libsm6:amd64                    2:1.2.1-2
libsmbclient:amd64              2:3.6.6-6+deb7u4
libsndfile1:amd64               1.0.25-5
libsoap-lite-perl               0.714-1
libsocket-perl                  2.002-1
libsp1c2                        1.3.4-1.2.1-47.1+b1
libspeex1:amd64                 1.2~rc1-7
libspice-server1:amd64          0.12.4-0nocelt2~bpo70+1
libsqlite3-0:amd64              3.7.13-1+deb7u1
libss2:amd64                    1.42.5-1.1
libssh2-1:amd64                 1.4.2-1.1
libssl1.0.0:amd64               1.0.1e-2+deb7u13
libstdc++6:amd64                4.7.2-5
libstdc++6-4.7-dev              4.7.2-5
libstringtemplate-java          3.2.1-1
libsub-name-perl                0.05-1+b2
libsvga1:amd64                  1:1.4.3-33
libswitch-perl                  2.16-2
libswscale2:amd64               6:0.8.16-1
libsys-hostname-long-perl       1.4-2
libsystemd-daemon0:amd64        204-14~bpo70+1
libsystemd-login0:amd64         44-11+deb7u4
libtalloc2:amd64                2.0.7+git20120207-1
libtask-weaken-perl             1.03-1
libtasn1-3:amd64                2.13-2+deb7u1
libtbb2                         4.0+r233-1
libtdb1:amd64                   1.2.10-2
libterm-readkey-perl            2.30-4+b2
libterm-readline-gnu-perl       1.20-2+b1
libtesseract3                   3.02.01-6
libtext-charwidth-perl          0.04-7+b1
libtext-iconv-perl              1.7-5
libtext-wrapi18n-perl           0.06-7
libthai-data                    0.1.18-2
libthai0:amd64                  0.1.18-2
libtheora0:amd64                1.1.1+dfsg.1-3.1
libtie-ixhash-perl              1.21-2
libtiff4:amd64                  3.9.6-11
libtimedate-perl                1.2000-1
libtinfo5:amd64                 5.9-10
libts-0.0-0:amd64               1.0-11
libudev0:amd64                  175-7.2
libunistring0:amd64             0.9.3-5
liburi-perl                     1.60-1
libusb-0.1-4:amd64              2:0.1.12-20+nmu1
libusb-1.0-0:amd64              2:1.0.19-1~bpo70+1
libusbredirparser0:amd64        0.4.3-2
libusbredirparser1:amd64        0.6-2~bpo70+1
libustr-1.0-1:amd64             1.0.4-3
libutempter0                    1.1.5-4
libuuid-perl                    0.02-5
libuuid1:amd64                  2.20.1-5.3
libv4l-0:amd64                  0.8.8-3
libv4lconvert0:amd64            0.8.8-3
libva1:amd64                    1.0.15-4
libvdeplug2                     2.3.2-4
libvdpau1:amd64                 0.4.1-7
libvirt-bin                     1.2.9-8~bpo70+1
libvirt-clients                 1.2.9-8~bpo70+1
libvirt-daemon                  1.2.9-8~bpo70+1
libvirt-daemon-system           1.2.9-8~bpo70+1
libvirt-dev                     1.2.9-8~bpo70+1
libvirt-ruby                    0.4.0-1
libvirt0                        1.2.9-8~bpo70+1
libvncserver0:amd64             0.9.9+dfsg-1+deb7u1
libvo-aacenc0:amd64             0.1.2-1
libvo-amrwbenc0:amd64           0.1.2-1
libvorbis0a:amd64               1.3.2-1.3
libvorbisenc2:amd64             1.3.2-1.3
libvorbisfile3:amd64            1.3.2-1.3
libvpx1:amd64                   1.1.0-1
libwbclient0:amd64              2:3.6.6-6+deb7u4
libwebp2:amd64                  0.1.3-3+nmu1
libwrap0:amd64                  7.6.q-24
libwww-perl                     6.04-1
libwww-robotrules-perl          6.01-1
libx11-6:amd64                  2:1.5.0-1+deb7u1
libx11-data                     2:1.5.0-1+deb7u1
libx11-dev:amd64                2:1.5.0-1+deb7u1
libx11-doc                      2:1.5.0-1+deb7u1
libx11-protocol-perl            0.56-4
libx11-xcb1:amd64               2:1.5.0-1+deb7u1
libx264-123:amd64               2:0.123.2189+git35cf912-1
libx86-1:amd64                  1.1+ds1-10
libxapian22                     1.2.12-2
libxau-dev:amd64                1:1.0.7-1
libxau6:amd64                   1:1.0.7-1
libxaw7:amd64                   2:1.0.10-2
libxcb-glx0:amd64               1.8.1-2+deb7u1
libxcb-render0:amd64            1.8.1-2+deb7u1
libxcb-shape0:amd64             1.8.1-2+deb7u1
libxcb-shm0:amd64               1.8.1-2+deb7u1
libxcb1:amd64                   1.8.1-2+deb7u1
libxcb1-dev:amd64               1.8.1-2+deb7u1
libxcomposite1:amd64            1:0.4.3-2
libxcursor1:amd64               1:1.1.13-1+deb7u1
libxdamage1:amd64               1:1.1.3-2
libxdmcp-dev:amd64              1:1.1.1-1
libxdmcp6:amd64                 1:1.1.1-1
libxdo2                         1:2.20100701.2961-3+deb7u3
libxen-4.1                      4.1.4-3+deb7u3
libxen-dev                      4.1.4-3+deb7u3
libxenstore3.0                  4.1.4-3+deb7u3
libxext6:amd64                  2:1.3.1-2+deb7u1
libxfixes3:amd64                1:5.0-4+deb7u1
libxfont1                       1:1.4.5-4
libxft2:amd64                   2.3.1-1
libxi6:amd64                    2:1.6.1-1+deb7u1
libxinerama1:amd64              2:1.1.2-1+deb7u1
libxkbfile1:amd64               1:1.0.8-1
libxml-namespacesupport-perl    1.09-3
libxml-parser-perl              2.41-1+b1
libxml-sax-base-perl            1.07-1
libxml-sax-expat-perl           0.40-2
libxml-sax-perl                 0.99+dfsg-2
libxml-simple-perl              2.20-1
libxml-twig-perl                1:3.39-1
libxml-xpathengine-perl         0.13-1
libxml2:amd64                   2.8.0+dfsg1-7+wheezy2
libxml2-dev:amd64               2.8.0+dfsg1-7+wheezy2
libxml2-utils                   2.8.0+dfsg1-7+wheezy2
libxmu6:amd64                   2:1.1.1-1
libxmuu1:amd64                  2:1.1.1-1
libxpm4:amd64                   1:3.5.10-1
libxrandr2:amd64                2:1.3.2-2+deb7u1
libxrender1:amd64               1:0.9.7-1+deb7u1
libxslt1-dev                    1.1.26-14.1
libxslt1.1:amd64                1.1.26-14.1
libxss1:amd64                   1:1.2.2-1
libxt-dev:amd64                 1:1.1.3-1+deb7u1
libxt6:amd64                    1:1.1.3-1+deb7u1
libxtst6:amd64                  2:1.2.1-1+deb7u1
libxv1:amd64                    2:1.0.7-1+deb7u1
libxvidcore4:amd64              2:1.3.2-9
libxvmc1                        2:1.0.7-1+deb7u2
libxxf86dga1:amd64              2:1.1.3-2+deb7u1
libxxf86vm1:amd64               1:1.1.2-1+deb7u1
libyajl2                        2.0.4-2
libyaml-0-2:amd64               0.1.4-2+deb7u5
libyaml-libyaml-perl            0.38-3+deb7u3
libyaml-perl                    0.81-1
libyaml-syck-perl               1.20-1
lintian                         2.5.10.4
linux-base                      3.5
linux-image-3.2.0-4-amd64       3.2.65-1
linux-image-amd64               3.2+46
linux-libc-dev:amd64            3.2.65-1
locales                         2.13-38+deb7u6
login                           1:4.1.5.1-1
logrotate                       3.8.1-4
lsb-base                        4.1+Debian8+deb7u1
lsb-release                     4.1+Debian8+deb7u1
lsof                            4.86+dfsg-1
lvm2                            2.02.95-8
m4                              1.4.16-3
make                            3.81-8.2
man-db                          2.6.2-1
manpages                        3.44-1
manpages-dev                    3.44-1
mawk                            1.3.3-17
mime-support                    3.52-1+deb7u1
module-init-tools               9-3
mount                           2.20.1-5.3
mplayer                         2:1.0~rc4.dfsg1+svn34540-1+b2
mtools                          4.0.17-1
multiarch-support               2.13-38+deb7u6
nano                            2.2.6-1+b1
ncurses-base                    5.9-10
ncurses-bin                     5.9-10
ncurses-term                    5.9-10
net-tools                       1.60-24.2
netbase                         5.0
netcat-openbsd                  1.105-7
netcat-traditional              1.10-40
netpbm                          2:10.0-15+b1
ntfs-3g                         1:2012.1.15AR.5-2.1
ntp                             1:4.2.6.p5+dfsg-2+deb7u1
openjdk-6-jdk:amd64             6b27-1.12.5-1
openjdk-6-jre:amd64             6b27-1.12.5-1
openjdk-6-jre-headless:amd64    6b27-1.12.5-1
openjdk-6-jre-lib               6b27-1.12.5-1
openjdk-7-jre:amd64             7u3-2.1.7-1
openjdk-7-jre-headless:amd64    7u3-2.1.7-1
openjdk-7-jre-lib               7u3-2.1.7-1
openssh-blacklist               0.4.1+nmu1
openssh-blacklist-extra         0.4.1+nmu1
openssh-client                  1:6.0p1-4+deb7u2
openssh-server                  1:6.0p1-4+deb7u2
openssl                         1.0.1e-2+deb7u13
os-prober                       1.58
ovmf                            0~20131112.2590861a-3
parted                          2.3-12
passwd                          1:4.1.5.1-1
patch                           2.6.1-3
patchutils                      0.3.2-1.1
pciutils                        1:3.1.9-6
perl                            5.14.2-21+deb7u2
perl-base                       5.14.2-21+deb7u2
perl-modules                    5.14.2-21+deb7u2
perlmagick                      8:6.7.7.10-5+deb7u3
pkg-config                      0.26-1
pm-utils                        1.4.1-9
po-debconf                      1.0.16+nmu2
po4a                            0.42-1
policykit-1                     0.105-3
policykit-1-gnome               0.105-2
poppler-data                    0.4.5-10
powermgmt-base                  1.31
procps                          1:3.3.3-3
psmisc                          22.19-1+deb7u1
python                          2.7.3-4+deb7u1
python-apt                      0.8.8.2
python-apt-common               0.8.8.2
python-central                  0.6.17
python-chardet                  2.0.1-2
python-debian                   0.1.21
python-dnspython                1.10.0-1
python-jabberbot                0.15-1
python-magic                    5.11-2+deb7u6
python-minimal                  2.7.3-4+deb7u1
python-otr                      0.2.1-1+b2
python-support                  1.0.15
python-xmpp                     0.4.1-cvs20080505.2
python2.7                       2.7.3-6+deb7u2
python2.7-minimal               2.7.3-6+deb7u2
python3                         3.2.3-6
python3-minimal                 3.2.3-6
python3-polib                   1.0.0-2
python3.2                       3.2.3-7
python3.2-minimal               3.2.3-7
qemu-kvm                        2.1+dfsg-9~bpo70+1
qemu-system-common              2.1+dfsg-9~bpo70+1
qemu-system-x86                 2.1+dfsg-9~bpo70+1
qemu-utils                      2.1+dfsg-9~bpo70+1
radvd                           1:1.8.5-1
readline-common                 6.2+dfsg-0.1
reiserfsprogs                   1:3.6.21-1
rsync                           3.0.9-4
rsyslog                         5.8.11-3+deb7u2
ruby                            1:1.9.3
ruby-blankslate                 2.1.2.4-4
ruby-builder                    3.0.0-3
ruby-diff-lcs                   1.1.3-1
ruby-gherkin                    2.12.1-1~bpo70+1
ruby-guestfs                    1:1.18.1-1+deb7u3
ruby-json                       1.7.3-3
ruby-libvirt                    0.4.0-1
ruby-multi-json                 1.8.0-1~bpo70+1
ruby-net-irc                    0.0.9-2
ruby-oj                         2.0.10-1~bpo70+1
ruby-packetfu                   1.1.8-1~bpo70+1
ruby-pcaprub                    0.11.3-1~bpo70+1
ruby-rjb                        1.4.8-1~bpo70+1
ruby-rspec                      2.10.0-2
ruby-rspec-core                 2.10.1-2
ruby-rspec-expectations         2.10.0-2
ruby-rspec-mocks                2.10.1-2
ruby-yajl                       1.1.0-2
ruby1.9.1                       1.9.3.194-8.1+deb7u2
sane-utils                      1.0.22-7.4
scrub                           2.4.1-1
seabios                         1.7.5-1~bpo70+1
sed                             4.2.1-10
sensible-utils                  0.0.7
sgml-base                       1.26+nmu4
shared-mime-info                1.0-1+b1
sharutils                       1:4.11.1-1
sp                              1.3.4-1.2.1-47.1+b1
strace                          4.5.20-2.3
sudo                            1.8.5p2-1+nmu1
syslinux                        2:4.05+dfsg-6+deb7u1
syslinux-common                 2:4.05+dfsg-6+deb7u1
sysv-rc                         2.88dsf-41+deb7u1
sysvinit                        2.88dsf-41+deb7u1
sysvinit-utils                  2.88dsf-41+deb7u1
tar                             1.26+dfsg-0.1
tasksel                         3.14.1
tasksel-data                    3.14.1
tcl                             8.5.0-2.1
tcl8.5                          8.5.11-2
tcpd                            7.6.q-24
tcpdump                         4.3.0-1+deb7u1
tesseract-ocr-eng               3.02-2
time                            1.7-24
tk                              8.5.0-2.1
tk8.5                           8.5.11-2
tmux                            1.6-2
traceroute                      1:2.0.18-3
tsconf                          1.0-11
ttf-dejavu-core                 2.33-3
ttf-dejavu-extra                2.33-3
tzdata                          2014j-0wheezy1
tzdata-java                     2014j-0wheezy1
ucf                             3.0025+nmu3
udev                            175-7.2
udisks                          1.0.4-7wheezy1
unclutter                       8-18
unzip                           6.0-8+deb7u1
update-inetd                    4.43
usbutils                        1:005-3
util-linux                      2.20.1-5.3
vbetool                         1.1-2
vgabios                         0.7a-3
vim                             2:7.3.547-7
vim-common                      2:7.3.547-7
vim-runtime                     2:7.3.547-7
vim-tiny                        2:7.3.547-7
virt-viewer                     0.5.3-1
wdiff                           1.1.2-1
wget                            1.13.4-3+deb7u2
whiptail                        0.52.14-11.1
whois                           5.1.1~deb7u1
wmctrl                          1.07-7
wwwconfig-common                0.2.2
x11-apps                        7.7~2
x11-common                      1:7.7+3~deb7u1
x11-utils                       7.7~1
x11-xkb-utils                   7.7~1
x11-xserver-utils               7.7~3
x11proto-core-dev               7.0.23-1
x11proto-input-dev              2.2-1
x11proto-kb-dev                 1.0.6-2
x11vnc                          0.9.13-1
x11vnc-data                     0.9.13-1
xauth                           1:1.0.7-1
xbitmaps                        1.1.1-1
xdg-utils                       1.1.0~rc1+git20111210-6+deb7u1
xdotool                         1:2.20100701.2961-3+deb7u3
xfonts-base                     1:1.0.3
xfonts-encodings                1:1.0.4-1
xfonts-utils                    1:7.7~1
xfsdump                         3.0.6
xfsprogs                        3.1.7+b1
xkb-data                        2.5.1-3
xml-core                        0.13+nmu2
xorg-sgml-doctools              1:1.10-1
xserver-common                  2:1.12.4-6+deb7u5
xterm                           278-4
xtightvncviewer                 1.3.9-6.4
xtrans-dev                      1.2.7-1
xvfb                            2:1.12.4-6+deb7u5
xz-utils                        5.1.1alpha+20120614-2
zerofree                        1.0.2-1
zfs-fuse                        0.7.0-8
zlib1g:amd64                    1:1.2.7.dfsg-13
root@testsuite:~# debsums -s
root@testsuite:~# echo $?
0

#11 Updated by kytv 2015-03-03 22:18:57

I made the following change to the debug patch

+      STDERR.puts "XXX @opts.nsaproof test: '#{@opts.nsaproof}' (#{@opts.nsaproof.class})" 
XXX Net::IRC::Client options:
#<OpenStruct nick="ZRyzX3Qjm5", user="ZRyzX3Qjm5", real="ZRyzX3Qjm5", spam_target="enry", pass=nil>
XXX -----
XXX @opts.nsaproof test: '' (NilClass)
XXX Got *no* exception

in irb

root@testsuite:/home/kytv/tails# irb
irb(main):001:0> require 'ostruct'                                                                                                                 
=> true
irb(main):002:0> h = Hash.new                                                                                                              
=> {}
irb(main):003:0> s = OpenStruct.new(h)                                                                                                             
=> #<OpenStruct>
irb(main):004:0> s.pass.display  
=> nil

#12 Updated by kytv 2015-03-04 00:25:54

In a brand-new Wheezy VM created by

XXX Net::IRC::Client options:
#<OpenStruct nick="ipbIkFSTWWcvC", user="ipbIkFSTWWcvC", real="ipbIkFSTWWcvC", spam_target="quela", pass=nil>
XXX -----
XXX @opts.pass test: 'true' (TrueClass)
XXX Got *no* exception
    And the "irc.oftc.net" account only responds to PING and VERSION CTCP requests # features/step_definitions/pidgin.rb:116
      undefined method `tr' for true:TrueClass (NoMethodError)
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:108:in `block in post'
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:104:in `map'
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:104:in `post'
      /usr/lib/ruby/vendor_ruby/net/irc/client.rb:29:in `start'
      ./features/support/helpers/ctcp_helper.rb:16:in `start'
      ./features/step_definitions/pidgin.rb:143:in `block (2 levels) in <top (required)>'
      /usr/lib/ruby/1.9.1/timeout.rb:68:in `timeout'
      ./features/step_definitions/pidgin.rb:142:in `/^the "([^"]*)" account only responds to PING and VERSION CTCP requests$/'
      features/pidgin.feature:29:in `And the "irc.oftc.net" account only responds to PING and VERSION CTCP request

#13 Updated by anonym 2015-03-04 18:45:02

  • Assignee changed from anonym to kytv
  • QA Check changed from Dev Needed to Info Needed

Ok, this is all very ridiculous. Before we start the painful process of comparing packages, what happens if you run the following from Tails source root, e.g. in an irb session:

require 'set'
require "#{Dir.pwd}/features/support/helpers/ctcp_helper.rb"
bot_nick = "e2ucs63jfdke9m"
spam_target = "KillYourTV"
bot_opts = {
  :nick => bot_nick,
  :user => bot_nick,
  :real => bot_nick,
  :spam_target => spam_target
}
bot = CtcpSpammer.new("irc.oftc.net", 6667, bot_opts)
bot.start


If it still fails, please save the full output of the session and attach it to this ticket.

#14 Updated by kytv 2015-03-05 18:08:52

  • Assignee changed from kytv to anonym
  • QA Check changed from Info Needed to Dev Needed

anonym wrote:
> Ok, this is all very ridiculous.

I don’t disagree with that. :)

Doing it in irb yielded much better results.

root@testsuite:/home/kytv/tails# irb
irb(main):001:0> require 'set'
=> true
irb(main):002:0> require "#{Dir.pwd}/features/support/helpers/ctcp_helper.rb"
=> true
irb(main):003:0> bot_nick = "e2ucs63jfdke9m"
=> "e2ucs63jfdke9m"
irb(main):004:0> spam_target = "KillYourTV"
=> "KillYourTV"
irb(main):005:0> bot_opts = {
irb(main):006:1*   :nick => bot_nick,
irb(main):007:1*   :user => bot_nick,
irb(main):008:1*   :real => bot_nick,
irb(main):009:1*   :spam_target => spam_target
irb(main):010:1> }
=> {:nick=>"e2ucs63jfdke9m", :user=>"e2ucs63jfdke9m", :real=>"e2ucs63jfdke9m", :spam_target=>"KillYourTV"}
irb(main):011:0> bot = CtcpSpammer.new("irc.oftc.net", 6667, bot_opts)
=> #<CtcpSpammer:0x0000000213b9e0 @spam_target="KillYourTV", @ctcp_replies=#<Set: {}>, @host="irc.oftc.net", @port=6667, @opts=#<OpenStruct nick="e2ucs63jfdke9m", user="e2ucs63jfdke9m", real="e2ucs63jfdke9m", spam_target="KillYourTV">, @log=#<Logger:0x0000000213aef0 @progname=nil, @level=0, @default_formatter=#<Logger::Formatter:0x0000000213aec8 @datetime_format=nil>, @formatter=nil, @logdev=#<Logger::LogDevice:0x0000000213ae78 @shift_size=nil, @shift_age=nil, @filename=nil, @dev=#<IO:<STDOUT>>, @mutex=#<Logger::LogDevice::LogDeviceMutex:0x0000000213ae50 @mon_owner=nil, @mon_count=0, @mon_mutex=#<Mutex:0x0000000213ae00>>>>, @server_config=#<Net::IRC::Message::ServerConfig:0x00000002102640 @config={}, @mode_parser=#<Net::IRC::Message::ModeParser:0x00000002032ff8 @modes={:b=>0, :e=>0, :I=>0, :R=>0, :k=>1, :l=>2, :i=>3, :m=>3, :n=>3, :p=>3, :s=>3, :t=>3, :a=>3, :q=>3, :r=>3}, @op_to_mark_map={:o=>:"@", :v=>:+}, @mark_to_op_map={:"@"=>:o, :+=>:v}>>, @channels={}>
irb(main):012:0> bot.start
XXX Net::IRC::Client options:
#<OpenStruct nick="e2ucs63jfdke9m", user="e2ucs63jfdke9m", real="e2ucs63jfdke9m", spam_target="KillYourTV">
XXX -----
XXX @opts.pass test: '' (NilClass)
XXX Got *no* exception
D, [2015-03-04T21:46:23.106250 #2755] DEBUG -- : SEND: NICK e2ucs63jfdke9m
D, [2015-03-04T21:46:23.106658 #2755] DEBUG -- : SEND: USER e2ucs63jfdke9m 0 * e2ucs63jfdke9m
D, [2015-03-04T21:46:23.165055 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net NOTICE AUTH :*** Looking up your hostname...
D, [2015-03-04T21:46:23.165496 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net NOTICE AUTH :*** Checking Ident
D, [2015-03-04T21:46:23.222866 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net NOTICE AUTH :*** No Ident response
D, [2015-03-04T21:46:23.318960 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net NOTICE AUTH :*** Found your hostname
D, [2015-03-04T21:46:23.319630 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 001 e2ucs63jfdke9m :Welcome to the OFTC Internet Relay Chat Network e2ucs63jfdke9m
D, [2015-03-04T21:46:23.330263 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 002 e2ucs63jfdke9m :Your host is coulomb.oftc.net[109.74.200.93/6667], running version hybrid-7.2.2+oftc1.6.16
D, [2015-03-04T21:46:23.330626 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 003 e2ucs63jfdke9m :This server was created Sep 10 2014 at 11:33:33
D, [2015-03-04T21:46:23.330794 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 004 e2ucs63jfdke9m coulomb.oftc.net hybrid-7.2.2+oftc1.6.16 CDGPRSabcdfgiklnorsuwxyz biklmnopstveI bkloveI
D, [2015-03-04T21:46:23.330969 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 005 e2ucs63jfdke9m CALLERID CASEMAPPING=rfc1459 DEAF=D KICKLEN=160 MODES=4 NICKLEN=30 PREFIX=(ov)@+ STATUSMSG=@+ TOPICLEN=390 NETWORK=OFTC MAXLIST=beI:100 MAXTARGETS=1 CHANTYPES=# :are supported by this server
D, [2015-03-04T21:46:23.331333 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 005 e2ucs63jfdke9m CHANLIMIT=#:70 CHANNELLEN=50 CHANMODES=eIqb,k,l,imnpstMRS AWAYLEN=160 KNOCK ELIST=CMNTU SAFELIST EXCEPTS=e INVEX=I :are supported by this server
D, [2015-03-04T21:46:23.331568 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 042 e2ucs63jfdke9m 2FBAAAD94 :your unique ID
D, [2015-03-04T21:46:23.331700 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 251 e2ucs63jfdke9m :There are 37 users and 11005 invisible on 18 servers
D, [2015-03-04T21:46:23.331815 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 252 e2ucs63jfdke9m 20 :IRC Operators online
D, [2015-03-04T21:46:23.332215 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 253 e2ucs63jfdke9m 1 :unknown connection(s)
D, [2015-03-04T21:46:23.332376 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 254 e2ucs63jfdke9m 2356 :channels formed
D, [2015-03-04T21:46:23.332601 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 255 e2ucs63jfdke9m :I have 673 clients and 1 servers
D, [2015-03-04T21:46:23.332825 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 265 e2ucs63jfdke9m :Current local users: 673  Max: 689
D, [2015-03-04T21:46:23.333017 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 266 e2ucs63jfdke9m :Current global users: 11042  Max: 11229
D, [2015-03-04T21:46:23.333209 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 250 e2ucs63jfdke9m :Highest connection count: 690 (689 clients) (5179 connections received)
D, [2015-03-04T21:46:23.333404 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 375 e2ucs63jfdke9m :- coulomb.oftc.net Message of the Day - 
D, [2015-03-04T21:46:23.333617 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :-   O
D, [2015-03-04T21:46:23.333801 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :-    \   The Open and Free
D, [2015-03-04T21:46:23.334008 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :-     O
D, [2015-03-04T21:46:23.334241 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :-    /|  Technology Community
D, [2015-03-04T21:46:23.334443 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- O-O O
D, [2015-03-04T21:46:23.331996 #2755] DEBUG -- : SEND: NOTICE KillYourTV :Hi! I'm gonna test your CTCP capabilities now.
D, [2015-03-04T21:46:23.334718 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- 
D, [2015-03-04T21:46:23.335148 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- Welcome to OFTC's IRC network.
D, [2015-03-04T21:46:23.335358 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- 
D, [2015-03-04T21:46:23.335590 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- The Open and Free Technology Community was founded at the
D, [2015-03-04T21:46:23.335799 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- end of 2001 by a group of experienced members of the Open
D, [2015-03-04T21:46:23.336068 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- Source and Free Software communities; it is aimed at
D, [2015-03-04T21:46:23.336260 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- providing these communities with better communication,
D, [2015-03-04T21:46:23.336450 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- development, and support infrastructure. Our goal is to
D, [2015-03-04T21:46:23.336642 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- provide stable services to members of the community in any
D, [2015-03-04T21:46:23.336848 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- part of the world, while listening closely to their needs
D, [2015-03-04T21:46:23.337002 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- and desires.
D, [2015-03-04T21:46:23.337222 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- 
D, [2015-03-04T21:46:23.337406 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- We are not a general purpose chat platform, but a topical
D, [2015-03-04T21:46:23.337595 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- network intent on providing the open source and free
D, [2015-03-04T21:46:23.337783 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- software communities a means to cooperate and communicate.
D, [2015-03-04T21:46:23.337965 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- As such, illegal and off-topic activity, such as warez
D, [2015-03-04T21:46:23.338169 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- trading, may result in being barred from access.
D, [2015-03-04T21:46:23.338478 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- 
D, [2015-03-04T21:46:23.338677 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- For more information on OFTC, please visit http://www.oftc.net/.
D, [2015-03-04T21:46:23.338869 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- 
D, [2015-03-04T21:46:23.339055 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- If you require assistance stop by in channel #oftc, or email
D, [2015-03-04T21:46:23.339243 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- support@oftc.net with details.
D, [2015-03-04T21:46:23.339590 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- 
D, [2015-03-04T21:46:23.339795 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- Thanks and enjoy your stay,
D, [2015-03-04T21:46:23.340012 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :- 
D, [2015-03-04T21:46:23.340087 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 372 e2ucs63jfdke9m :-         The OFTC team
D, [2015-03-04T21:46:23.340163 #2755] DEBUG -- : RECEIVE: :coulomb.oftc.net 376 e2ucs63jfdke9m :End of /MOTD command.
D, [2015-03-04T21:46:23.340223 #2755] DEBUG -- : RECEIVE: :e2ucs63jfdke9m!~e2ucs63jf@MYHOST MODE e2ucs63jfdke9m :+i
D, [2015-03-04T21:46:25.335423 #2755] DEBUG -- : SEND: PRIVMSG KillYourTV FINGER
D, [2015-03-04T21:46:27.336205 #2755] DEBUG -- : SEND: PRIVMSG KillYourTV SOURCE
D, [2015-03-04T21:46:27.693526 #2755] DEBUG -- : RECEIVE: :KillYourTV!~kytv@00019721.user.oftc.net NOTICE e2ucs63jfdke9m :SOURCE http://weechat.org/download
undefined method `match' for nil:NilClass
/home/ky/usr/bin/irb:12:in `<main>'69:in `start'in start'top_level_statement'tatement'_statement'
NoMethodError: undefined method `match' for nil:NilClass
        from /home/kytv/tails/features/support/helpers/ctcp_helper.rb:69:in `block in on_message'
        from /home/kytv/tails/features/support/helpers/ctcp_helper.rb:67:in `each'
        from /home/kytv/tails/features/support/helpers/ctcp_helper.rb:67:in `on_message'
        from /usr/lib/ruby/vendor_ruby/net/irc/client.rb:36:in `start'
        from /home/kytv/tails/features/support/helpers/ctcp_helper.rb:16:in `start'
        from (irb):12
        from /usr/bin/irb:12:in `<main>'
irb(main):013:0> D, [2015-03-04T21:46:29.336915 #2755] DEBUG -- : SEND: PRIVMSG KillYourTV USERINFO

#15 Updated by anonym 2015-03-06 05:40:21

kytv wrote:
> D, [2015-03-04T21:46:27.693526 #2755] DEBUG -- : RECEIVE: :KillYourTV!~kytv00019721.user.oftc.net NOTICE e2ucs63jfdke9m :SOURCE http://weechat.org/download@
> undefined method `match' for nil:NilClass

Ah, hah! This exposed an issue, i.e. this error will happen whenever a client responds to an unexpected CTCP request, but actually we should get a much better error. Pushed a fix in commit f514f20.

Still, that had nothing to do with the bigger issue, i.e. this @opts.pass madness. I suppose I’ll take a look at the packages diff between our systems tomorrow or so. In the meantime, feel free to dist-upgrade and attach the package list as a file to this ticket. The ticket is getting crazy long now => bad for readability.

#16 Updated by kytv 2015-03-06 11:09:56

  • File <del>missing: apt.show.versions</del> added
  • File <del>missing: dpkg-l</del> added

The test VM is up-to-date as of Fri Mar 6 11:04:30 UTC 2015.

The output from apt-show-versions would be handier for diff reviewing.

#17 Updated by kytv 2015-03-06 11:12:03

  • File deleted (dpkg-l)

#18 Updated by kytv 2015-03-06 11:12:11

  • File deleted (apt.show.versions)

#19 Updated by kytv 2015-03-06 11:12:38

#20 Updated by anonym 2015-03-06 12:44:27

TODO/REMINDER: once test/8000-8001-pidgin-xmp-otr (or test/8001-8002-pidgin-xmp-otr if we rename it; see Feature #8001, Feature #8002) is merged into stable, merge stable into test/7820-pidgin-irc-ctcp and make use of the generate_random_{alpha,alnum}_string() functions in the the XXX account only responds to PING and VERSION CTCP requests step.

#21 Updated by anonym 2015-03-06 16:30:05

I’ve looked at the package diff, and I can see no interesting differences. In particular, I have the exact same version of all ruby related packages you install, but I have the following packages in addition:

libnokogiri-ruby 1.5.5-1
libpcap-ruby 0.7.0-2
libqtruby4shared2 4:4.8.4-1
plasma-scriptengine-ruby 4:4.8.4-6
ruby1.8 1.8.7.358-7.1+deb7u1
ruby1.8-dev 1.8.7.358-7.1+deb7u1
ruby1.9.1-dev 1.9.3.194-8.1+deb7u2
ruby-childprocess 0.5.5-1
ruby-dev 1:1.9.3
ruby-erubis 2.7.0-2
ruby-ffi 1.0.11debian-5
rubygems 1.8.24-1
ruby-git 1.2.5-2
ruby-gpgme 2.0.0-2
ruby-i18n 0.6.0-3+deb7u1
ruby-kde4 4:4.8.4-1
ruby-log4r 1.1.10-2
ruby-metaclass 0.0.1-2
ruby-mocha 0.11.3-3
ruby-multi-test 0.1.1-1
ruby-net-scp 1.2.1-1
ruby-net-ssh 1:2.6.8-2
ruby-nokogiri 1.5.5-1
ruby-pcap 0.7.0-2
ruby-plasma 4:4.8.4-1
ruby-polyglot 0.3.3-3
ruby-qt4 4:4.8.4-1
ruby-qt4-webkit 4:4.8.4-1
ruby-systemtimer 1.2.3-1
ruby-test-unit 2.5.0-2
ruby-treetop 1.4.10-5


I doubt installing them will make any difference, but it may be worth a try.

For lizard.isotester1, the diff is

--- isotester1
+++ kytv
-libruby1.8 1.8.7.358-7.1+deb7u2
-libruby1.9.1 1.9.3.194-8.1+deb7u3
+libruby1.8 1.8.7.358-7.1+deb7u1
+libruby1.9.1 1.9.3.194-8.1+deb7u2
-ruby1.8 1.8.7.358-7.1+deb7u2
-ruby1.9.1 1.9.3.194-8.1+deb7u3
-ruby-activerecord-2.3 2.3.14-6
-ruby-activesupport-2.3 2.3.14-7
+ruby1.9.1 1.9.3.194-8.1+deb7u2
-ruby-i18n 0.6.0-3+deb7u1
-ruby-memcache-client 1.8.5-2
+ruby-net-irc 0.0.9-2
-ruby-shadow 2.1.4-2
-ruby-tzinfo 0.3.33-3


Which doesn’t look very interesting either. I have yet to run this branch on isotester1 though.

#22 Updated by kytv 2015-03-06 19:47:38

  • Assignee changed from anonym to kytv
  • QA Check changed from Dev Needed to Info Needed

anonym wrote:
> I’ve looked at the package diff, and I can see no interesting differences. In particular, I have the exact same version of all ruby related packages you install, but I have the following packages in addition:

\ø/ It looks like one of these fixed it. Now to go through them and find out which one allowed it to work.

#23 Updated by intrigeri 2015-03-06 20:02:13

> \ø/ It looks like one of these fixed it. Now to go through them and find out which one allowed it to work.

I suspect some package has a missing dependency. If we can find out which one, I’d like to help fix that bug in Jessie, if we can reproduce it there.

#24 Updated by kytv 2015-03-06 20:22:25

Preliminary results: ruby-test-unit/2.5.0-2 is the necessary package. I’ll make another VM to confirm.

#25 Updated by kytv 2015-03-06 22:31:12

  • Assignee changed from kytv to anonym
  • QA Check changed from Info Needed to Dev Needed

kytv wrote:
> Preliminary results: ruby-test-unit/2.5.0-2 is the necessary package. I’ll make another VM to confirm.

…and confirmed. ruby-test-unit is needed for this test to run. After this small patch is applied to the setup instructions, +1 on merging. :)

diff --git a/wiki/src/contribute/release_process/test/setup.mdwn b/wiki/src/contribute/release_process/test/setup.mdwn
index 0d8946b..c6202e9 100644
--- a/wiki/src/contribute/release_process/test/setup.mdwn
+++ b/wiki/src/contribute/release_process/test/setup.mdwn
@@ -24,7 +24,7 @@ wheezy-backports sources added:
         libxslt1-dev tcpdump unclutter radvd x11-apps syslinux \
         libcap2-bin devscripts libvirt-ruby ruby-rspec gawk ntp ovmf/testing \
         ruby-json x11vnc xtightvncviewer ffmpeg libavcodec-extra-53 \
-        libvpx1 dnsmasq-base openjdk-7-jre ruby-guestfs ruby-net-irc && \
+        libvpx1 dnsmasq-base openjdk-7-jre ruby-guestfs ruby-net-irc ruby-test-unit && \
     apt-get -t wheezy-backports install qemu-kvm qemu-system-x86 libvirt0 \
         libvirt-dev libvirt-bin seabios ruby-rjb ruby-packetfu cucumber && \
     service libvirtd restart

(I presume intrigeri’s eagle eyes may spot something that I’ve missed (even with my having looked at this a multitude of times trying to figure out why this worked for you but not for me)).

As for which Debian package—if any—is missing a dependency on ruby-test-unit, I don’t have an answer for that.

#26 Updated by anonym 2015-03-07 00:55:47

  • Assignee changed from anonym to intrigeri
  • QA Check changed from Dev Needed to Ready for QA

kytv wrote:
> kytv wrote:
> > Preliminary results: ruby-test-unit/2.5.0-2 is the necessary package. I’ll make another VM to confirm.
>
> …and confirmed. ruby-test-unit is needed for this test to run.

I can confirm that uninstalling ruby-test-unit this! It’s pretty bad of me to not spot it in the list, since I should know that it’s a dependency. Hrm. Thanks for your persistence!

It’s interesting that the test suite works at all when that package is not installed, though, since we require 'test/unit' in misc_helpers.rb, but it turns out Ruby has its own ‘test/unit.rb’ (in libruby1.9.1). We actually include Test::Unit::Assertions, but with this other variant of test/unit, it in turn include:s MiniTest::Assertions, which defines this function:

    def pass msg = nil
      assert true
    end

which explains everything. Urgh!

It should be noted that include:ing Test::Unit::Assertions from the “proper” unit/test is safe. I did check before suggesting we do it!) since it only defines assert*, flunk and build_message, which shouldn’t collide with other things (i.e. our code or code we require.

Given how Ruby works, all def:s at the “lowest” level (i.e. outside any class or method) actually get added into the Object class (which all other classes inherit), so we actually add goodies like wait_until_tor_is_working to Object, so "some string".wait_until_tor_is_working is a perfectly fine way to call it in our test suite. :) I suppose the right way would be to encapsulate such functions in a module like this:

module Helpers
  def self.wait_until_tor_is_working
  [...]
  end
end

and then call them as Helpers.wait_until_tor_is_working. The same problem exists for the helper functions we define in the various step definition files (like configured_pidgin_accounts in pidgin.rb), so perhaps all helpers should also be added into the Helpers module at the top of each step definitions file (keeping them in the affected file is imho good for readability); multiple module statements for the same module name will just keep on building up the same one.

That is, if we care about not polluting Object and risk more collisions of this kind…

> After this small patch is applied to the setup instructions, +1 on merging. :)

I applied something similar (including a line break to keep the lines short and more consistent with the other ones).

I’m glad this is solved now! Please proceed reviewing the branch, finally! :)

#27 Updated by anonym 2015-03-07 01:04:15

anonym wrote:
> Given how Ruby works, […] I suppose the right way would be to encapsulate such functions in a module […] if we care about not polluting Object and risk more collisions of this kind.

… which I guess we do, so I opened Feature #9030.

It’s fun to learn a language while doing work intended for “production” in it. :) I have actually known that this is how Ruby works for a couple years by now, but I must say that the way we’ve been defining these helper functions have got so ingrained in my thinking that I never reflected on it in that context. Oh, well. :)

#28 Updated by anonym 2015-03-07 01:18:48

anonym wrote:
> > After this small patch is applied to the setup instructions, +1 on merging. :)
>
> I applied something similar (including a line break to keep the lines short and more consistent with the other ones).

For the record, I changed my mind and pushed it into master, merged it into the feature branch, and resolved the expected conflict.

#29 Updated by anonym 2015-03-07 01:20:59

  • Assignee changed from intrigeri to kytv

Woops!

#30 Updated by kytv 2015-03-08 16:53:42

  • Assignee changed from kytv to intrigeri

I’m happy with this at its current stage. Impressive work, as usual. :)

Assigning to intrigeri for his skillful nitpicking.

#31 Updated by intrigeri 2015-03-09 12:36:12

  • Assignee changed from intrigeri to anonym
  • % Done changed from 50 to 60
  • QA Check changed from Ready for QA to Dev Needed

I find the splitting of responsibilities between “only responds to PING and VERSION CTCP requests” and CtcpSpammer very confusing: reading the former’s implementation, it’s unclear that we’re actually checking Pidgin’s responses — one has to go look into the CtcpSpammer’s implementation to understand it. Without changing the design completely, this can perhaps be solved by adjusting a bit some naming, e.g.:

  • add a spam_and_check_responses method in CtcpSpammer, that is simply a wrapper for the start method
  • use bot.spam_and_check_responses in the “account only responds to PING and VERSION CTCP requests” step definition, instead of bot.start
  • rename the CtcpSpammer class to CtcpCheck so it’s clearer what its job is
  • rename the bot variable, in the “account only responds to PING and VERSION CTCP requests” step definition, to something like ctcp_check or ctcp_checker (the fact that it’s implemented as a bot is an implementation detail that doesn’t need to leak into this step definition)

If it’s not too complicated to add, I would greatly appreciate an “anti-test” for the CTCP tests, e.g. checking that we indeed do reply to PING and VERSION (to validate how we’re checking that we do not reply to other commands). My understanding is that currently, if the spammer bot doesn’t receive one of the expected replies, “account only responds to PING and VERSION CTCP requests” will raise an exception with the “[…] failed to spam all CTCP commands within […]” message, which may not be the best way to explain what really happened.

It feels slightly inelegant to forward opts[:spam_target] to the Net::IRC::Client constructor, which presumably doesn’t support it and may have unspecified behaviour when passed options it doesn’t understand, or may start validating them some day in the future. Perhaps filter it out when calling super(host, port, opts)? Feel free to disregard as crazy nitpicking ;)

Just curious: shouldn’t on_rpl_welcome pass through its argument to super? I don’t see this argument used anywhere in the function definition, so I’m wondering.

I would rename the ctcp_ret variable to ctcp_reply, and ctcp_replies to received_ctcp_replies, but no big deal.

In “other than PING or VERSION”, ideally we should not hardcode the list of expected types of reply, but instead build it from EXPECTED_CTCP_REPLIES.

#32 Updated by intrigeri 2015-03-09 12:36:38

  • blocked by Feature #8001: Automatic tests for OTR in Pidgin added

#33 Updated by intrigeri 2015-03-09 12:36:47

  • blocked by Feature #8002: Automatic tests for XMPP in Pidgin added

#34 Updated by anonym 2015-03-12 17:32:11

  • Assignee changed from anonym to intrigeri
  • QA Check changed from Dev Needed to Info Needed

intrigeri wrote:
> I find the splitting of responsibilities between “only responds to PING and VERSION CTCP requests” and CtcpSpammer very confusing: reading the former’s implementation, it’s unclear that we’re actually checking Pidgin’s responses — one has to go look into the CtcpSpammer’s implementation to understand it.

Ok, I get this. I’ve almost completely rewritten the test and helper class. I think I’ve fixed everything you said except what I explicitly deal with below:

> If it’s not too complicated to add, I would greatly appreciate an “anti-test” for the CTCP tests, e.g. checking that we indeed do reply to PING and VERSION (to validate how we’re checking that we do not reply to other commands). My understanding is that currently, if the spammer bot doesn’t receive one of the expected replies, “account only responds to PING and VERSION CTCP requests” will raise an exception with the “[…] failed to spam all CTCP commands within […]” message, which may not be the best way to explain what really happened.

I don’t get it. The anti-test is (and was) there, because we definitely check that we get the expected replies. You simply want improved error reporting? If so I think we have that now.

> Just curious: shouldn’t on_rpl_welcome pass through its argument to super? I don’t see this argument used anywhere in the function definition, so I’m wondering.

When calling super without arguments, the calling methods arguments are used.

> In “other than PING or VERSION”, ideally we should not hardcode the list of expected types of reply, but instead build it from EXPECTED_CTCP_REPLIES.

I think this point is moot now, or what do you think?

#35 Updated by intrigeri 2015-03-15 08:29:40

> I don’t get it. The anti-test is (and was) there, because we definitely check that we get the expected replies. You simply want improved error reporting? If so I think we have that now.

Good.

>> In “other than PING or VERSION”, ideally we should not hardcode the list of expected types of reply, but instead build it from EXPECTED_CTCP_REPLIES.

> I think this point is moot now, or what do you think?

Yes.

Code review passes!

#36 Updated by intrigeri 2015-03-15 08:30:45

  • QA Check changed from Info Needed to Ready for QA

#37 Updated by intrigeri 2015-03-15 09:12:27

  • blocks deleted (Feature #8001: Automatic tests for OTR in Pidgin)

#38 Updated by intrigeri 2015-03-15 09:12:30

  • blocks deleted (Feature #8002: Automatic tests for XMPP in Pidgin)

#39 Updated by intrigeri 2015-03-15 09:25:01

  • Status changed from In Progress to Fix committed
  • Assignee deleted (intrigeri)
  • % Done changed from 60 to 100
  • QA Check changed from Ready for QA to Pass

#40 Updated by Tails 2015-03-17 08:36:33

Applied in changeset commit:93f895e985d9dfab127ffd1f1c8feb17e3273dde.

#41 Updated by anonym 2015-03-17 08:38:12

It seems you had forgotten to push stable/devel after merging, so I did it so I could do Feature #8966#note-20.

#42 Updated by BitingBird 2015-03-22 11:54:13

  • Target version changed from Tails_1.3.2 to Tails_1.3.1

#43 Updated by BitingBird 2015-03-23 01:59:39

  • Status changed from Fix committed to Resolved