diff options
| author | makefu <github@syntax-fehler.de> | 2018-08-16 19:31:40 +0200 | 
|---|---|---|
| committer | makefu <github@syntax-fehler.de> | 2018-08-16 19:31:40 +0200 | 
| commit | b15785ef5520a3bd3a5c729c7f2cfb9d106abec8 (patch) | |
| tree | 0d2edf81f0659e2c30cb00d622d06955d1f66a40 | |
| parent | fdd7b3cacf398d40df9e71dc38db1a64faa14537 (diff) | |
ma pkgs.beef: bump version, fix package
| -rw-r--r-- | makefu/5pkgs/beef/Gemfile | 56 | ||||
| -rw-r--r-- | makefu/5pkgs/beef/Gemfile.lock | 101 | ||||
| -rw-r--r-- | makefu/5pkgs/beef/db-in-homedir.patch | 39 | ||||
| -rw-r--r-- | makefu/5pkgs/beef/default.nix | 22 | ||||
| -rw-r--r-- | makefu/5pkgs/beef/gemset.nix | 238 | 
5 files changed, 348 insertions, 108 deletions
diff --git a/makefu/5pkgs/beef/Gemfile b/makefu/5pkgs/beef/Gemfile index 1420feffd..da13e1fb8 100644 --- a/makefu/5pkgs/beef/Gemfile +++ b/makefu/5pkgs/beef/Gemfile @@ -1,15 +1,16 @@  # BeEF's Gemfile  # -# Copyright (c) 2006-2017 Wade Alcorn - wade@bindshell.net +# Copyright (c) 2006-2018 Wade Alcorn - wade@bindshell.net  # Browser Exploitation Framework (BeEF) - http://beefproject.com  # See the file 'doc/COPYING' for copying permission  #  gem 'eventmachine'  gem 'thin' -gem 'sinatra' -gem 'rack', '~> 1.6.5' +gem 'sinatra', '~> 2.0' +gem 'rack', '~> 2.0' +gem 'rack-protection', '~> 2.0'  gem 'em-websocket' # WebSocket support  gem 'uglifier'  gem 'mime-types' @@ -22,8 +23,7 @@ gem 'data_objects'  gem 'rubyzip', '>= 1.2.1'  gem 'espeak-ruby', '>= 1.0.4' # Text-to-Voice  gem 'nokogiri', '>= 1.7' - -gem 'therubyracer' +gem 'rake'  # SQLite support  group :sqlite do @@ -52,11 +52,17 @@ gem 'dm-migrations'  # Metasploit Integration extension  group :ext_msf do    gem 'msfrpc-client' +  gem 'xmlrpc'  end -# Twitter Notifications extension -group :ext_twitter do -  #gem 'twitter', '>= 5.0.0' +# Notifications extension +group :ext_notifications do +  # Pushover +  gem 'rushover' +  # Slack +  gem 'slack-notifier' +  # Twitter +  gem 'twitter', '>= 5.0.0'  end  # DNS extension @@ -76,22 +82,24 @@ end  # For running unit tests  group :test do -if ENV['BEEF_TEST'] -  gem 'rake' -  gem 'test-unit' -  gem 'test-unit-full' -  gem 'curb' -  gem 'selenium' -  gem 'selenium-webdriver' -  gem 'rspec' -  gem 'bundler-audit' -  # nokogirl is needed by capybara which may require one of the below commands -  # sudo apt-get install libxslt-dev libxml2-dev -  # sudo port install libxml2 libxslt -  gem 'capybara' -  # RESTful API tests/generic command module tests -  gem 'rest-client', '>= 2.0.1' -end +  if ENV['BEEF_TEST'] +    gem 'test-unit' +    gem 'test-unit-full' +    gem 'rspec' +    # curb gem requires curl libraries +    # sudo apt-get install libcurl4-openssl-dev +    gem 'curb' +    # selenium-webdriver 3.x is incompatible with Firefox version 48 and prior +    gem 'selenium' +    gem 'selenium-webdriver', '~> 2.53.4' +    # nokogirl is needed by capybara which may require one of the below commands +    # sudo apt-get install libxslt-dev libxml2-dev +    # sudo port install libxml2 libxslt +    gem 'capybara' +    # RESTful API tests/generic command module tests +    gem 'rest-client', '>= 2.0.1' +    gem 'byebug' +  end  end  source 'https://rubygems.org' diff --git a/makefu/5pkgs/beef/Gemfile.lock b/makefu/5pkgs/beef/Gemfile.lock index d2e6ad45e..8f18bf220 100644 --- a/makefu/5pkgs/beef/Gemfile.lock +++ b/makefu/5pkgs/beef/Gemfile.lock @@ -4,8 +4,9 @@ GEM      addressable (2.5.2)        public_suffix (>= 2.0.2, < 4.0)      ansi (1.5.0) -    chunky_png (1.3.8) -    daemons (1.2.4) +    buftok (0.2.0) +    chunky_png (1.3.10) +    daemons (1.2.6)      data_objects (0.10.17)        addressable (~> 2.1)      dm-core (1.2.1) @@ -26,48 +27,66 @@ GEM        do_sqlite3 (~> 0.10.6)      do_sqlite3 (0.10.17)        data_objects (= 0.10.17) +    domain_name (0.5.20180417) +      unf (>= 0.0.5, < 1.0.0)      em-websocket (0.5.1)        eventmachine (>= 0.12.9)        http_parser.rb (~> 0.6.0) +    equalizer (0.0.11)      erubis (2.7.0)      espeak-ruby (1.0.4)      eventmachine (1.0.9.1)      execjs (2.7.0)      fastercsv (1.5.5)      filesize (0.1.1) -    geoip (1.6.3) +    geoip (1.6.4) +    http (3.3.0) +      addressable (~> 2.3) +      http-cookie (~> 1.0) +      http-form_data (~> 2.0) +      http_parser.rb (~> 0.6.0) +    http-cookie (1.0.3) +      domain_name (~> 0.5) +    http-form_data (2.1.1)      http_parser.rb (0.6.0)      jsobfu (0.4.2)        rkelly-remix      json (1.8.6)      json_pure (1.8.6) -    libv8 (3.16.14.19) +    memoizable (0.4.2) +      thread_safe (~> 0.3, >= 0.3.1)      metasm (1.0.3) -    mime-types (3.1) +    mime-types (3.2.2)        mime-types-data (~> 3.2015) -    mime-types-data (3.2016.0521) +    mime-types-data (3.2018.0812)      mini_portile2 (2.3.0)      mojo_magick (0.5.6)      msfrpc-client (1.1.1)        msgpack (~> 1)        rex (~> 2) -    msgpack (1.1.0) -    multi_json (1.12.2) -    nokogiri (1.8.1) +    msgpack (1.2.4) +    multi_json (1.13.1) +    multipart-post (2.0.0) +    mustermann (1.0.2) +    naught (1.1.0) +    netrc (0.11.0) +    nokogiri (1.8.4)        mini_portile2 (~> 2.3.0)      parseconfig (1.0.8) -    public_suffix (3.0.0) +    public_suffix (3.0.3)      qr4r (0.4.1)        mojo_magick        rqrcode -    rack (1.6.8) -    rack-protection (1.5.3) +    rack (2.0.5) +    rack-protection (2.0.3)        rack -    rainbow (2.2.2) -      rake -    rake (12.1.0) +    rainbow (3.0.0) +    rake (12.3.1)      rb-readline (0.5.5) -    ref (2.0.0) +    rest-client (2.0.2) +      http-cookie (>= 1.0.2, < 2.0) +      mime-types (>= 1.16, < 4.0) +      netrc (~> 0.8)      rex (2.0.11)        filesize        jsobfu (~> 0.4.1) @@ -86,23 +105,42 @@ GEM        eventmachine (~> 1.0.0)        rexec (~> 1.6.2)      rubyzip (1.2.1) -    sinatra (1.4.8) -      rack (~> 1.5) -      rack-protection (~> 1.4) -      tilt (>= 1.3, < 3) +    rushover (0.3.0) +      json +      rest-client +    simple_oauth (0.3.1) +    sinatra (2.0.3) +      mustermann (~> 1.0) +      rack (~> 2.0) +      rack-protection (= 2.0.3) +      tilt (~> 2.0) +    slack-notifier (2.3.2)      term-ansicolor (1.6.0)        tins (~> 1.0) -    therubyracer (0.12.3) -      libv8 (~> 3.16.14.15) -      ref      thin (1.7.2)        daemons (~> 1.0, >= 1.0.9)        eventmachine (~> 1.0, >= 1.0.4)        rack (>= 1, < 3) +    thread_safe (0.3.6)      tilt (2.0.8) -    tins (1.15.0) -    uglifier (3.2.0) +    tins (1.16.3) +    twitter (6.2.0) +      addressable (~> 2.3) +      buftok (~> 0.2.0) +      equalizer (~> 0.0.11) +      http (~> 3.0) +      http-form_data (~> 2.0) +      http_parser.rb (~> 0.6.0) +      memoizable (~> 0.4.0) +      multipart-post (~> 2.0) +      naught (~> 1.0) +      simple_oauth (~> 0.3.0) +    uglifier (4.1.18)        execjs (>= 0.3.0, < 3) +    unf (0.1.4) +      unf_ext +    unf_ext (0.0.7.5) +    xmlrpc (0.3.0)  PLATFORMS    ruby @@ -126,14 +164,19 @@ DEPENDENCIES    nokogiri (>= 1.7)    parseconfig    qr4r -  rack (~> 1.6.5) +  rack (~> 2.0) +  rack-protection (~> 2.0) +  rake    rubydns (~> 0.7.3)    rubyzip (>= 1.2.1) -  sinatra +  rushover +  sinatra (~> 2.0) +  slack-notifier    term-ansicolor -  therubyracer    thin +  twitter (>= 5.0.0)    uglifier +  xmlrpc  BUNDLED WITH -   1.15.4 +   1.14.6 diff --git a/makefu/5pkgs/beef/db-in-homedir.patch b/makefu/5pkgs/beef/db-in-homedir.patch new file mode 100644 index 000000000..e8dd8e3db --- /dev/null +++ b/makefu/5pkgs/beef/db-in-homedir.patch @@ -0,0 +1,39 @@ +--- /beef	2018-08-16 19:03:55.199437566 +0200 ++++ /beef	2018-08-16 19:27:34.735985233 +0200 +@@ -110,9 +110,20 @@ + # + # @note Database setup - use DataMapper::Logger.new($stdout, :debug) for development debugging + # ++ ++# ++# @note Create ~/.beef/ ++# ++begin ++  FileUtils.mkdir_p($home_dir) unless File.directory?($home_dir) ++rescue => e ++  print_error "Could not create '#{$home_dir}': #{e.message}" ++end ++ + case config.get("beef.database.driver") +   when "sqlite" +-    DataMapper.setup(:default, "sqlite3://#{$root_dir}/#{config.get("beef.database.db_file")}") ++    print_info "Using Database #{$home_dir}/#{config.get("beef.database.db_file")}" ++    DataMapper.setup(:default, "sqlite3://#{$home_dir}/#{config.get("beef.database.db_file")}") +   when "mysql", "postgres" +     DataMapper.setup(:default, +                      :adapter => config.get("beef.database.driver"), +@@ -162,14 +173,6 @@ + BeEF::Core::Console::Banners.print_network_interfaces_count + BeEF::Core::Console::Banners.print_network_interfaces_routes +  +-# +-# @note Create ~/.beef/ +-# +-begin +-  FileUtils.mkdir_p($home_dir) unless File.directory?($home_dir) +-rescue => e +-  print_error "Could not create '#{$home_dir}': #{e.message}" +-end +  + # + # @note Check whether we load the Console Shell or not diff --git a/makefu/5pkgs/beef/default.nix b/makefu/5pkgs/beef/default.nix index 82540cde9..d444dbded 100644 --- a/makefu/5pkgs/beef/default.nix +++ b/makefu/5pkgs/beef/default.nix @@ -1,4 +1,4 @@ -{ stdenv, bundlerEnv, ruby, fetchFromGitHub }: +{ stdenv, bundlerEnv, ruby, fetchFromGitHub, nodejs }:  # nix-shell --command "bundler install && bundix" in the clone, copy gemset.nix, Gemfile and Gemfile.lock  let    gems = bundlerEnv { @@ -7,13 +7,17 @@ let      gemdir  = ./.;    };  in stdenv.mkDerivation { -  name = "beef-2017-09-21"; +  name = "beef-2018-09-21";    src = fetchFromGitHub {      owner = "beefproject";      repo = "beef"; -    rev = "69aa2a3"; -    sha256 = "1rky61i0wzpwcq3kqfa0m5hf6wyz8q8jgzs7dpfh04w9qh32ic4p"; +    rev = "d237c95"; +    sha256 = "1mykbjwjcbd2a18wycaf35hi3b9rmvqz1jnk2v55sd4c39f0jpf2";    }; +  prePatch = '' +    ls -alhtr +  ''; +  patches = [ ./db-in-homedir.patch ];    buildInputs = [gems ruby];    installPhase = ''      mkdir -p $out/{bin,share/beef} @@ -25,13 +29,17 @@ in stdenv.mkDerivation {      bin=$out/bin/beef      cat > $bin <<EOF  #!/bin/sh -e +PATH=$PATH:${nodejs}/bin/  exec ${gems}/bin/bundle exec ${ruby}/bin/ruby $out/share/beef/beef "\$@"  EOF      chmod +x $bin    ''; -  # crashes with segfault -  # also, db cannot be set -  meta.broken = true; +  meta = with stdenv.lib; { +    homepage = https://beefproject.com/; +    description = "The Browser Exploitation Framework"; +    platforms = platforms.linux; +    maintainers = with maintainers; [ makefu ]; +  };  } diff --git a/makefu/5pkgs/beef/gemset.nix b/makefu/5pkgs/beef/gemset.nix index b6af75d00..3ccd7340b 100644 --- a/makefu/5pkgs/beef/gemset.nix +++ b/makefu/5pkgs/beef/gemset.nix @@ -16,21 +16,29 @@      };      version = "1.5.0";    }; +  buftok = { +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "1rzsy1vy50v55x9z0nivf23y0r9jkmq6i130xa75pq9i8qrn1mxs"; +      type = "gem"; +    }; +    version = "0.2.0"; +  };    chunky_png = {      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "0j0dngz6s0j3s3zaf9vrimjz65s9k7ad1c3xmmldr1vmz8sbd843"; +      sha256 = "05g2xli9wbjylkmblln3bhvjalziwb92q452q8ibjagmb853424w";        type = "gem";      }; -    version = "1.3.8"; +    version = "1.3.10";    };    daemons = {      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "1bmb4qrd95b5gl3ym5j3q6mf090209f4vkczggn49n56w6s6zldz"; +      sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2";        type = "gem";      }; -    version = "1.2.4"; +    version = "1.2.6";    };    data_objects = {      dependencies = ["addressable"]; @@ -95,6 +103,15 @@      };      version = "0.10.17";    }; +  domain_name = { +    dependencies = ["unf"]; +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v"; +      type = "gem"; +    }; +    version = "0.5.20180417"; +  };    em-websocket = {      dependencies = ["eventmachine" "http_parser.rb"];      source = { @@ -104,6 +121,14 @@      };      version = "0.5.1";    }; +  equalizer = { +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4"; +      type = "gem"; +    }; +    version = "0.0.11"; +  };    erubis = {      source = {        remotes = ["https://rubygems.org"]; @@ -155,10 +180,36 @@    geoip = {      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "099hxng7h8i3pwibnassivj58iw1x7ygwq06qj6rx7j16iyz6rzx"; +      sha256 = "1if16n4pjl2kshc0cqg7i03m55fspmlca6p9f4r66rpzw0v4d6jc";        type = "gem";      }; -    version = "1.6.3"; +    version = "1.6.4"; +  }; +  http = { +    dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"]; +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "1jlm5prw437wqpfxcigh88lfap3m7g8mnmj5as7qw6dzqnvrxwmc"; +      type = "gem"; +    }; +    version = "3.3.0"; +  }; +  http-cookie = { +    dependencies = ["domain_name"]; +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g"; +      type = "gem"; +    }; +    version = "1.0.3"; +  }; +  http-form_data = { +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "15lpn604byf7cyxnw949xz4rvpcknqp7a48q73nm630gqxsa76f3"; +      type = "gem"; +    }; +    version = "2.1.1";    };    "http_parser.rb" = {      source = { @@ -193,13 +244,14 @@      };      version = "1.8.6";    }; -  libv8 = { +  memoizable = { +    dependencies = ["thread_safe"];      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "0271i5sfma05gvhmrmxqb0jj667bl6m54yd49ay6yrdbh1g4wpl1"; +      sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";        type = "gem";      }; -    version = "3.16.14.19"; +    version = "0.4.2";    };    metasm = {      source = { @@ -213,18 +265,18 @@      dependencies = ["mime-types-data"];      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "0087z9kbnlqhci7fxh9f6il63hj1k02icq2rs0c6cppmqchr753m"; +      sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";        type = "gem";      }; -    version = "3.1"; +    version = "3.2.2";    };    mime-types-data = {      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "04my3746hwa4yvbx1ranhfaqkgf6vavi1kyijjnw8w3dy37vqhkm"; +      sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";        type = "gem";      }; -    version = "3.2016.0521"; +    version = "3.2018.0812";    };    mini_portile2 = {      source = { @@ -254,27 +306,59 @@    msgpack = {      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "0ck7w17d6b4jbb8inh1q57bghi9cjkiaxql1d3glmj1yavbpmlh7"; +      sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864";        type = "gem";      }; -    version = "1.1.0"; +    version = "1.2.4";    };    multi_json = {      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "1raim9ddjh672m32psaa9niw67ywzjbxbdb8iijx3wv9k5b0pk2x"; +      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv"; +      type = "gem"; +    }; +    version = "1.13.1"; +  }; +  multipart-post = { +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x"; +      type = "gem"; +    }; +    version = "2.0.0"; +  }; +  mustermann = { +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "07sb7fckrraqh48fjnqf6yl7vxxabfx0qrsrhfdz67pd838g4k8g"; +      type = "gem"; +    }; +    version = "1.0.2"; +  }; +  naught = { +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "1wwjx35zgbc0nplp8a866iafk4zsrbhwwz4pav5gydr2wm26nksg";        type = "gem";      }; -    version = "1.12.2"; +    version = "1.1.0"; +  }; +  netrc = { +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y"; +      type = "gem"; +    }; +    version = "0.11.0";    };    nokogiri = {      dependencies = ["mini_portile2"];      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "105xh2zkr8nsyfaj2izaisarpnkrrl9000y3nyflg9cbzrfxv021"; +      sha256 = "1h9nml9h3m0mpvmh8jfnqvblnz5n5y3mmhgfc38avfmfzdrq9bgc";        type = "gem";      }; -    version = "1.8.1"; +    version = "1.8.4";    };    parseconfig = {      source = { @@ -287,10 +371,10 @@    public_suffix = {      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "0snaj1gxfib4ja1mvy3dzmi7am73i0mkqr0zkz045qv6509dhj5f"; +      sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";        type = "gem";      }; -    version = "3.0.0"; +    version = "3.0.3";    };    qr4r = {      dependencies = ["mojo_magick" "rqrcode"]; @@ -304,36 +388,35 @@    rack = {      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "19m7aixb2ri7p1n0iqaqx8ldi97xdhvbxijbyrrcdcl6fv5prqza"; +      sha256 = "158hbn7rlc3czp2vivvam44dv6vmzz16qrh5dbzhfxbfsgiyrqw1";        type = "gem";      }; -    version = "1.6.8"; +    version = "2.0.5";    };    rack-protection = {      dependencies = ["rack"];      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "0cvb21zz7p9wy23wdav63z5qzfn4nialik22yqp6gihkgfqqrh5r"; +      sha256 = "1z5598qipilmnf45428jnxi63ykrgvnyywa5ckpr52zv2vpd8jdp";        type = "gem";      }; -    version = "1.5.3"; +    version = "2.0.3";    };    rainbow = { -    dependencies = ["rake"];      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "08w2ghc5nv0kcq5b257h7dwjzjz1pqcavajfdx2xjyxqsvh2y34w"; +      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";        type = "gem";      }; -    version = "2.2.2"; +    version = "3.0.0";    };    rake = {      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "0mfqgpp3m69s5v1rd51lfh5qpjwyia5p4rg337pw8c8wzm6pgfsw"; +      sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg";        type = "gem";      }; -    version = "12.1.0"; +    version = "12.3.1";    };    rb-readline = {      source = { @@ -343,13 +426,14 @@      };      version = "0.5.5";    }; -  ref = { +  rest-client = { +    dependencies = ["http-cookie" "mime-types" "netrc"];      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "04p4pq4sikly7pvn30dc7v5x2m7fqbfwijci4z1y6a1ilwxzrjii"; +      sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j";        type = "gem";      }; -    version = "2.0.0"; +    version = "2.0.2";    };    rex = {      dependencies = ["filesize" "jsobfu" "json" "metasm" "nokogiri" "rb-readline" "robots"]; @@ -411,32 +495,48 @@      };      version = "1.2.1";    }; +  rushover = { +    dependencies = ["json" "rest-client"]; +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "0j6x61drcdfnbvgmkmrc92zw67acpfcz5h1a29sdf884zkwd1444"; +      type = "gem"; +    }; +    version = "0.3.0"; +  }; +  simple_oauth = { +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "0dw9ii6m7wckml100xhjc6vxpjcry174lbi9jz5v7ibjr3i94y8l"; +      type = "gem"; +    }; +    version = "0.3.1"; +  };    sinatra = { -    dependencies = ["rack" "rack-protection" "tilt"]; +    dependencies = ["mustermann" "rack" "rack-protection" "tilt"];      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "0byxzl7rx3ki0xd7aiv1x8mbah7hzd8f81l65nq8857kmgzj1jqq"; +      sha256 = "1kyi55q4k4idv31h7l53hw0mnh50dwwrrsfm35j52jy7fc993m9r";        type = "gem";      }; -    version = "1.4.8"; +    version = "2.0.3";    }; -  term-ansicolor = { -    dependencies = ["tins"]; +  slack-notifier = {      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "1b1wq9ljh7v3qyxkk8vik2fqx2qzwh5lval5f92llmldkw7r7k7b"; +      sha256 = "1pkfn99dhy5s526r6k8d87fwwb6j287ga9s7lxqmh60z28xqh3bv";        type = "gem";      }; -    version = "1.6.0"; +    version = "2.3.2";    }; -  therubyracer = { -    dependencies = ["libv8" "ref"]; +  term-ansicolor = { +    dependencies = ["tins"];      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "1g95bzs2axjglyjyj6xvsywqgr80bnzlkw7mddxx1fdrak5wni2q"; +      sha256 = "1b1wq9ljh7v3qyxkk8vik2fqx2qzwh5lval5f92llmldkw7r7k7b";        type = "gem";      }; -    version = "0.12.3"; +    version = "1.6.0";    };    thin = {      dependencies = ["daemons" "eventmachine" "rack"]; @@ -447,6 +547,14 @@      };      version = "1.7.2";    }; +  thread_safe = { +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy"; +      type = "gem"; +    }; +    version = "0.3.6"; +  };    tilt = {      source = {        remotes = ["https://rubygems.org"]; @@ -458,18 +566,52 @@    tins = {      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "09whix5a7ics6787zrkwjmp16kqyh6560p9f317syks785805f7s"; +      sha256 = "0g95xs4nvx5n62hb4fkbkd870l9q3y9adfc4h8j21phj9mxybkb8";        type = "gem";      }; -    version = "1.15.0"; +    version = "1.16.3"; +  }; +  twitter = { +    dependencies = ["addressable" "buftok" "equalizer" "http" "http-form_data" "http_parser.rb" "memoizable" "multipart-post" "naught" "simple_oauth"]; +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "0fjyz3viabz3xs5d9aad18zgdbhfwm51jsnzigc8kxk77p1x58n5"; +      type = "gem"; +    }; +    version = "6.2.0";    };    uglifier = {      dependencies = ["execjs"];      source = {        remotes = ["https://rubygems.org"]; -      sha256 = "0wmqvn4xncw6h3d5gp2a44170zwxfyj3iq4rsjp16zarvzbdmgnz"; +      sha256 = "14r283lkhisq2sdccv8ngf10f2f18ly4nc3chz3kliw5nylbgznw"; +      type = "gem"; +    }; +    version = "4.1.18"; +  }; +  unf = { +    dependencies = ["unf_ext"]; +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9"; +      type = "gem"; +    }; +    version = "0.1.4"; +  }; +  unf_ext = { +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1"; +      type = "gem"; +    }; +    version = "0.0.7.5"; +  }; +  xmlrpc = { +    source = { +      remotes = ["https://rubygems.org"]; +      sha256 = "1s744iwblw262gj357pky3d9fcx9hisvla7rnw29ysn5zsb6i683";        type = "gem";      }; -    version = "3.2.0"; +    version = "0.3.0";    };  }
\ No newline at end of file  | 
