whatweb: 0.5.5 -> 0.6.2, fix build issues
This commit is contained in:
@@ -1,25 +0,0 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
bson (4.14.1)
|
||||
ipaddr (1.2.4)
|
||||
json (2.6.1)
|
||||
mongo (2.17.1)
|
||||
bson (>= 4.8.2, < 5.0.0)
|
||||
public_suffix (4.0.6)
|
||||
rchardet (1.8.0)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
addressable
|
||||
ipaddr
|
||||
json
|
||||
mongo
|
||||
rchardet
|
||||
|
||||
BUNDLED WITH
|
||||
2.1.4
|
||||
@@ -0,0 +1,7 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem 'ipaddr'
|
||||
gem 'addressable'
|
||||
gem 'json'
|
||||
gem 'getoptlong'
|
||||
gem 'resolv-replace'
|
||||
@@ -0,0 +1,26 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
getoptlong (0.2.1)
|
||||
ipaddr (1.2.7)
|
||||
json (2.13.2)
|
||||
public_suffix (6.0.2)
|
||||
resolv (0.6.2)
|
||||
resolv-replace (0.1.1)
|
||||
resolv
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
addressable
|
||||
getoptlong
|
||||
ipaddr
|
||||
json
|
||||
resolv-replace
|
||||
|
||||
BUNDLED WITH
|
||||
2.7.1
|
||||
@@ -1,6 +1,9 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem 'ipaddr'
|
||||
gem 'addressable'
|
||||
gem 'json'
|
||||
gem 'getoptlong'
|
||||
gem 'resolv-replace'
|
||||
gem 'mongo'
|
||||
gem 'rchardet'
|
||||
@@ -0,0 +1,34 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
base64 (0.3.0)
|
||||
bson (5.1.1)
|
||||
getoptlong (0.2.1)
|
||||
ipaddr (1.2.7)
|
||||
json (2.13.2)
|
||||
mongo (2.21.3)
|
||||
base64
|
||||
bson (>= 4.14.1, < 6.0.0)
|
||||
public_suffix (6.0.2)
|
||||
rchardet (1.9.0)
|
||||
resolv (0.6.2)
|
||||
resolv-replace (0.1.1)
|
||||
resolv
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
addressable
|
||||
getoptlong
|
||||
ipaddr
|
||||
json
|
||||
mongo
|
||||
rchardet
|
||||
resolv-replace
|
||||
|
||||
BUNDLED WITH
|
||||
2.7.1
|
||||
@@ -0,0 +1,8 @@
|
||||
source 'https://rubygems.org'
|
||||
|
||||
gem 'ipaddr'
|
||||
gem 'addressable'
|
||||
gem 'json'
|
||||
gem 'getoptlong'
|
||||
gem 'resolv-replace'
|
||||
gem 'rchardet'
|
||||
@@ -0,0 +1,28 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
getoptlong (0.2.1)
|
||||
ipaddr (1.2.7)
|
||||
json (2.13.2)
|
||||
public_suffix (6.0.2)
|
||||
rchardet (1.9.0)
|
||||
resolv (0.6.2)
|
||||
resolv-replace (0.1.1)
|
||||
resolv
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
addressable
|
||||
getoptlong
|
||||
ipaddr
|
||||
json
|
||||
rchardet
|
||||
resolv-replace
|
||||
|
||||
BUNDLED WITH
|
||||
2.7.1
|
||||
@@ -0,0 +1,118 @@
|
||||
{
|
||||
addressable = {
|
||||
dependencies = [ "public_suffix" ];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0cl2qpvwiffym62z991ynks7imsm87qmgxf0yfsmlwzkgi9qcaa6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.7";
|
||||
};
|
||||
base64 = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0yx9yn47a8lkfcjmigk79fykxvr80r4m1i35q82sxzynpbm7lcr7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.3.0";
|
||||
};
|
||||
bson = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "02q695963ix1qcdwy205rwd38mv089z54n2i5n3ih1kad864jz55";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.1.1";
|
||||
};
|
||||
getoptlong = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "198vy9dxyzibqdbw9jg8p2ljj9iknkyiqlyl229vz55rjxrz08zx";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.2.1";
|
||||
};
|
||||
ipaddr = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0wmgwqv6c1kq8cxbxddllnrlh5jjmjw73i1sqbnvq55zzn3l0zyb";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.7";
|
||||
};
|
||||
json = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0s5vklcy2fgdxa9c6da34jbfrqq7xs6mryjglqqb5iilshcg3q82";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.13.2";
|
||||
};
|
||||
mongo = {
|
||||
dependencies = [
|
||||
"base64"
|
||||
"bson"
|
||||
];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "15f96bg3gr3vahwh9vslgfxl3khma21gaqgdj98jc1447w73xlf1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.21.3";
|
||||
};
|
||||
public_suffix = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1543ap9w3ydhx39ljcd675cdz9cr948x9mp00ab8qvq6118wv9xz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.0.2";
|
||||
};
|
||||
rchardet = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1455yhd1arccrns3ghhvn4dl6gnrf4zn1xxsaa33ffyqrn399216";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.9.0";
|
||||
};
|
||||
resolv = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "057vj12w6cnzz9kzbnwg17snm9jwr22izrbp9yqv3pnxrr2ybvv1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.2";
|
||||
};
|
||||
resolv-replace = {
|
||||
dependencies = [ "resolv" ];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "13v8xdmsqlr9822xpcvscnr4b9vzmzhg0l7r6hh4b281baq1jda7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.1";
|
||||
};
|
||||
}
|
||||
@@ -5,70 +5,70 @@
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
|
||||
sha256 = "0cl2qpvwiffym62z991ynks7imsm87qmgxf0yfsmlwzkgi9qcaa6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.0";
|
||||
version = "2.8.7";
|
||||
};
|
||||
bson = {
|
||||
getoptlong = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "03n3w96vpblaxvk1qk8hq7sbsmg4nv7qdkdr8f7nfvalgpakp5i5";
|
||||
sha256 = "198vy9dxyzibqdbw9jg8p2ljj9iknkyiqlyl229vz55rjxrz08zx";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.14.1";
|
||||
version = "0.2.1";
|
||||
};
|
||||
ipaddr = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "13qd34nzpgp3fxfjbvaqg3dcnfr0cgl5vjvcqy0hfllbvfcklnbq";
|
||||
sha256 = "0wmgwqv6c1kq8cxbxddllnrlh5jjmjw73i1sqbnvq55zzn3l0zyb";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.4";
|
||||
version = "1.2.7";
|
||||
};
|
||||
json = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1z9grvjyfz16ag55hg522d3q4dh07hf391sf9s96npc0vfi85xkz";
|
||||
sha256 = "0s5vklcy2fgdxa9c6da34jbfrqq7xs6mryjglqqb5iilshcg3q82";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.6.1";
|
||||
};
|
||||
mongo = {
|
||||
dependencies = [ "bson" ];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "19sihy8ihi3hmdg3gxbf4qvzmjnzx8xygg9534012j9z0wmhs7h1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.17.1";
|
||||
version = "2.13.2";
|
||||
};
|
||||
public_suffix = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
|
||||
sha256 = "1543ap9w3ydhx39ljcd675cdz9cr948x9mp00ab8qvq6118wv9xz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.0.6";
|
||||
version = "6.0.2";
|
||||
};
|
||||
rchardet = {
|
||||
resolv = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1isj1b3ywgg2m1vdlnr41lpvpm3dbyarf1lla4dfibfmad9csfk9";
|
||||
sha256 = "057vj12w6cnzz9kzbnwg17snm9jwr22izrbp9yqv3pnxrr2ybvv1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.0";
|
||||
version = "0.6.2";
|
||||
};
|
||||
resolv-replace = {
|
||||
dependencies = [ "resolv" ];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "13v8xdmsqlr9822xpcvscnr4b9vzmzhg0l7r6hh4b281baq1jda7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.1";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
{
|
||||
addressable = {
|
||||
dependencies = [ "public_suffix" ];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0cl2qpvwiffym62z991ynks7imsm87qmgxf0yfsmlwzkgi9qcaa6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.7";
|
||||
};
|
||||
getoptlong = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "198vy9dxyzibqdbw9jg8p2ljj9iknkyiqlyl229vz55rjxrz08zx";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.2.1";
|
||||
};
|
||||
ipaddr = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0wmgwqv6c1kq8cxbxddllnrlh5jjmjw73i1sqbnvq55zzn3l0zyb";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.7";
|
||||
};
|
||||
json = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "0s5vklcy2fgdxa9c6da34jbfrqq7xs6mryjglqqb5iilshcg3q82";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.13.2";
|
||||
};
|
||||
public_suffix = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1543ap9w3ydhx39ljcd675cdz9cr948x9mp00ab8qvq6118wv9xz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "6.0.2";
|
||||
};
|
||||
rchardet = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "1455yhd1arccrns3ghhvn4dl6gnrf4zn1xxsaa33ffyqrn399216";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.9.0";
|
||||
};
|
||||
resolv = {
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "057vj12w6cnzz9kzbnwg17snm9jwr22izrbp9yqv3pnxrr2ybvv1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.2";
|
||||
};
|
||||
resolv-replace = {
|
||||
dependencies = [ "resolv" ];
|
||||
groups = [ "default" ];
|
||||
platforms = [ ];
|
||||
source = {
|
||||
remotes = [ "https://rubygems.org" ];
|
||||
sha256 = "13v8xdmsqlr9822xpcvscnr4b9vzmzhg0l7r6hh4b281baq1jda7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.1";
|
||||
};
|
||||
}
|
||||
@@ -3,32 +3,69 @@
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
bundlerEnv,
|
||||
ruby,
|
||||
ruby_3_4,
|
||||
withMongo ? false,
|
||||
withRchardet ? false,
|
||||
}:
|
||||
|
||||
let
|
||||
gemdir =
|
||||
if withMongo && withRchardet then
|
||||
./gems
|
||||
else if withMongo then
|
||||
./gems
|
||||
else if withRchardet then
|
||||
./gems
|
||||
else
|
||||
./gems;
|
||||
|
||||
gemfile =
|
||||
if withMongo then
|
||||
gemdir + "/Gemfile.mongo"
|
||||
else if withRchardet then
|
||||
gemdir + "/Gemfile.rchardet"
|
||||
else
|
||||
gemdir + "/Gemfile";
|
||||
|
||||
lockfile =
|
||||
if withMongo then
|
||||
gemdir + "/Gemfile.mongo.lock"
|
||||
else if withRchardet then
|
||||
gemdir + "/Gemfile.rchardet.lock"
|
||||
else
|
||||
gemdir + "/Gemfile.lock";
|
||||
|
||||
gemset =
|
||||
if withMongo then
|
||||
gemdir + "/gemset.mongo.nix"
|
||||
else if withRchardet then
|
||||
gemdir + "/gemset.rchardet.nix"
|
||||
else
|
||||
gemdir + "/gemset.nix";
|
||||
|
||||
gems = bundlerEnv {
|
||||
name = "whatweb-env";
|
||||
inherit ruby;
|
||||
gemdir = ./.;
|
||||
inherit ruby_3_4;
|
||||
inherit gemdir;
|
||||
inherit gemfile lockfile gemset;
|
||||
};
|
||||
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "whatweb";
|
||||
version = "0.5.5";
|
||||
version = "0.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "urbanadventurer";
|
||||
repo = "whatweb";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-HLF55x4C8n8aPO4SI0d6Z9wZe80krtUaGUFmMaYRBIE=";
|
||||
sha256 = "sha256-EFQ4RHI1+kmlz/Bm+9KXbmY0iEBJnKfdQL5YGDWCfJQ=";
|
||||
};
|
||||
|
||||
prePatch = ''
|
||||
substituteInPlace Makefile \
|
||||
--replace "/usr/local" "$out" \
|
||||
--replace "/usr" "$out"
|
||||
--replace "/usr" "$out" \
|
||||
--replace "bundle install" "echo 'Skipping bundle install in nix build'"
|
||||
'';
|
||||
|
||||
buildInputs = [ gems ];
|
||||
@@ -40,15 +77,38 @@ stdenv.mkDerivation rec {
|
||||
rm $out/bin/whatweb
|
||||
cat << EOF >> $out/bin/whatweb
|
||||
#!/bin/sh -e
|
||||
exec ${gems}/bin/bundle exec ${ruby}/bin/ruby "$raw" "\$@"
|
||||
export GEM_PATH="${gems}/lib/ruby/gems/3.3.0"
|
||||
export RUBYOPT="-W0"
|
||||
exec ${ruby_3_4}/bin/ruby "$raw" "\$@"
|
||||
EOF
|
||||
chmod +x $out/bin/whatweb
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
withMongo = withMongo;
|
||||
withRchardet = withRchardet;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Next generation web scanner";
|
||||
longDescription = ''
|
||||
WhatWeb is a website fingerprinting tool that identifies web technologies such as CMSs, blogging platforms,
|
||||
analytics packages, JavaScript libraries, web servers, and embedded devices. With over 1800 plugins, it detects software
|
||||
versions, email addresses, account IDs, web framework modules, SQL errors, and more. WhatWeb offers adjustable scan
|
||||
modes, balancing speed and thoroughness, making it suitable for both quick reconnaissance and detailed penetration
|
||||
testing. Its plugins use multiple detection methods to reliably identify technologies, even when sites attempt to
|
||||
obscure their software.
|
||||
''
|
||||
+ lib.optionalString withMongo ''
|
||||
|
||||
This build includes MongoDB support and character set detection capabilities, which may impact performance.
|
||||
''
|
||||
+ lib.optionalString (withRchardet && !withMongo) ''
|
||||
|
||||
This build includes character set detection capabilities, which may impact performance.
|
||||
'';
|
||||
mainProgram = "whatweb";
|
||||
homepage = "https://github.com/urbanadventurer/whatweb";
|
||||
license = licenses.gpl2Only;
|
||||
|
||||
Reference in New Issue
Block a user