aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Piotrowski <0mp@FreeBSD.org>2021-10-09 18:21:50 +0000
committerMateusz Piotrowski <0mp@FreeBSD.org>2021-10-09 18:30:13 +0000
commit0f2d228a4856289084b2df23d40cb78c1e23c5ef (patch)
treed75368a79c6facaaeb5bfc1655307477691340ae
parentc89c8818212f4740b241139983e0ed2d2d197855 (diff)
downloadports-0f2d228a4856289084b2df23d40cb78c1e23c5ef.tar.gz
ports-0f2d228a4856289084b2df23d40cb78c1e23c5ef.zip
security/weggli: Add a new port
weggli is a fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify interesting functionality in large codebases. weggli performs pattern matching on Abstract Syntax Trees based on user provided queries. Its query language resembles C and C++ code, making it easy to turn interesting code patterns into queries. weggli is inspired by great tools like Semgrep, Coccinelle, joern and CodeQL, but makes some different design decisions: - C++ support: weggli has first class support for modern C++ constructs, such as lambda expressions, range-based for loops and constexprs. - Minimal setup: weggli should work out-of-the box against most software you will encounter. weggli does not require the ability to build the software and can work with incomplete sources or missing dependencies. - Interactive: weggli is designed for interactive usage and fast query performance. Most of the time, a weggli query will be faster than a grep search. The goal is to enable an interactive workflow where quick switching between code review and query creation/improvement is possible. - Greedy: weggli's pattern matching is designed to find as many (useful) matches as possible for a specific query. While this increases the risk of false positives it simplifies query creation. For example, the query $x = 10; will match both assignment expressions (foo = 10;) and declarations (int bar = 10;). WWW: https://github.com/googleprojectzero/weggli
-rw-r--r--security/Makefile1
-rw-r--r--security/weggli/Makefile134
-rw-r--r--security/weggli/distinfo231
-rw-r--r--security/weggli/pkg-descr26
4 files changed, 392 insertions, 0 deletions
diff --git a/security/Makefile b/security/Makefile
index dc3776f75379..2f57f3214a31 100644
--- a/security/Makefile
+++ b/security/Makefile
@@ -1323,6 +1323,7 @@
SUBDIR += wazuh-agent
SUBDIR += webfwlog
SUBDIR += webscarab
+ SUBDIR += weggli
SUBDIR += whatweb
SUBDIR += wipe
SUBDIR += wolfssh
diff --git a/security/weggli/Makefile b/security/weggli/Makefile
new file mode 100644
index 000000000000..a7df3a3c6f6e
--- /dev/null
+++ b/security/weggli/Makefile
@@ -0,0 +1,134 @@
+PORTNAME= weggli
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.2.2
+CATEGORIES= security
+
+MAINTAINER= 0mp@FreeBSD.org
+COMMENT= Semantic search tool for C and C++ codebases
+
+LICENSE= APACHE20
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= cargo
+USE_GITHUB= yes
+GH_ACCOUNT= googleprojectzero
+CARGO_CRATES= aho-corasick-0.7.15 \
+ ansi_term-0.11.0 \
+ assert_cmd-2.0.0 \
+ atty-0.2.14 \
+ autocfg-1.0.1 \
+ bitflags-1.2.1 \
+ bstr-0.2.15 \
+ bumpalo-3.6.1 \
+ byteorder-1.4.3 \
+ cast-0.2.3 \
+ cc-1.0.65 \
+ cfg-if-0.1.10 \
+ cfg-if-1.0.0 \
+ chrono-0.4.19 \
+ clap-2.33.3 \
+ colored-2.0.0 \
+ const_fn-0.4.3 \
+ criterion-0.3.4 \
+ criterion-plot-0.4.3 \
+ crossbeam-channel-0.5.0 \
+ crossbeam-deque-0.8.0 \
+ crossbeam-epoch-0.9.1 \
+ crossbeam-utils-0.8.1 \
+ csv-1.1.6 \
+ csv-core-0.1.10 \
+ ctor-0.1.17 \
+ difference-2.0.0 \
+ difflib-0.4.0 \
+ doc-comment-0.3.3 \
+ either-1.6.1 \
+ float-cmp-0.8.0 \
+ ghost-0.1.2 \
+ half-1.7.1 \
+ hermit-abi-0.1.17 \
+ indoc-1.0.3 \
+ instant-0.1.9 \
+ inventory-0.1.10 \
+ inventory-impl-0.1.10 \
+ itertools-0.9.0 \
+ itertools-0.10.0 \
+ itoa-0.4.7 \
+ js-sys-0.3.48 \
+ lazy_static-1.4.0 \
+ libc-0.2.80 \
+ lock_api-0.4.2 \
+ log-0.4.11 \
+ memchr-2.3.4 \
+ memoffset-0.6.1 \
+ nix-0.17.0 \
+ normalize-line-endings-0.3.0 \
+ num-integer-0.1.44 \
+ num-traits-0.2.14 \
+ num_cpus-1.13.0 \
+ oorandom-11.1.3 \
+ parking_lot-0.11.1 \
+ parking_lot_core-0.8.2 \
+ paste-1.0.4 \
+ plotters-0.3.0 \
+ plotters-backend-0.3.0 \
+ plotters-svg-0.3.0 \
+ predicates-1.0.8 \
+ predicates-2.0.2 \
+ predicates-core-1.0.2 \
+ predicates-tree-1.0.3 \
+ proc-macro2-1.0.24 \
+ pyo3-0.13.0 \
+ pyo3-macros-0.13.0 \
+ pyo3-macros-backend-0.13.0 \
+ quote-1.0.8 \
+ rayon-1.5.0 \
+ rayon-core-1.9.0 \
+ redox_syscall-0.1.57 \
+ regex-1.4.2 \
+ regex-automata-0.1.9 \
+ regex-syntax-0.6.21 \
+ rustc_version-0.2.3 \
+ ryu-1.0.5 \
+ same-file-1.0.6 \
+ scopeguard-1.1.0 \
+ semver-0.9.0 \
+ semver-parser-0.7.0 \
+ serde-1.0.121 \
+ serde_cbor-0.11.1 \
+ serde_derive-1.0.121 \
+ serde_json-1.0.64 \
+ simplelog-0.10.0 \
+ smallvec-1.6.0 \
+ strsim-0.8.0 \
+ syn-1.0.58 \
+ termcolor-1.1.2 \
+ textwrap-0.11.0 \
+ thread_local-1.0.1 \
+ time-0.1.44 \
+ tinytemplate-1.2.1 \
+ tree-sitter-0.19.2 \
+ treeline-0.1.0 \
+ unicode-width-0.1.8 \
+ unicode-xid-0.2.1 \
+ unindent-0.1.7 \
+ vec_map-0.8.2 \
+ void-1.0.2 \
+ wait-timeout-0.2.0 \
+ walkdir-2.3.1 \
+ wasi-0.10.0+wasi-snapshot-preview1 \
+ wasm-bindgen-0.2.71 \
+ wasm-bindgen-backend-0.2.71 \
+ wasm-bindgen-macro-0.2.71 \
+ wasm-bindgen-macro-support-0.2.71 \
+ wasm-bindgen-shared-0.2.71 \
+ web-sys-0.3.48 \
+ winapi-0.3.9 \
+ winapi-i686-pc-windows-gnu-0.4.0 \
+ winapi-util-0.1.5 \
+ winapi-x86_64-pc-windows-gnu-0.4.0
+PLIST_FILES= bin/${PORTNAME}
+
+post-install:
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/security/weggli/distinfo b/security/weggli/distinfo
new file mode 100644
index 000000000000..36258050d4e6
--- /dev/null
+++ b/security/weggli/distinfo
@@ -0,0 +1,231 @@
+TIMESTAMP = 1633802771
+SHA256 (rust/crates/aho-corasick-0.7.15.crate) = 7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5
+SIZE (rust/crates/aho-corasick-0.7.15.crate) = 113071
+SHA256 (rust/crates/ansi_term-0.11.0.crate) = ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b
+SIZE (rust/crates/ansi_term-0.11.0.crate) = 17087
+SHA256 (rust/crates/assert_cmd-2.0.0.crate) = 54f002ce7d0c5e809ebb02be78fd503aeed4a511fd0fcaff6e6914cbdabbfa33
+SIZE (rust/crates/assert_cmd-2.0.0.crate) = 27912
+SHA256 (rust/crates/atty-0.2.14.crate) = d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8
+SIZE (rust/crates/atty-0.2.14.crate) = 5470
+SHA256 (rust/crates/autocfg-1.0.1.crate) = cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a
+SIZE (rust/crates/autocfg-1.0.1.crate) = 12908
+SHA256 (rust/crates/bitflags-1.2.1.crate) = cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693
+SIZE (rust/crates/bitflags-1.2.1.crate) = 16745
+SHA256 (rust/crates/bstr-0.2.15.crate) = a40b47ad93e1a5404e6c18dec46b628214fee441c70f4ab5d6942142cc268a3d
+SIZE (rust/crates/bstr-0.2.15.crate) = 344206
+SHA256 (rust/crates/bumpalo-3.6.1.crate) = 63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe
+SIZE (rust/crates/bumpalo-3.6.1.crate) = 133836
+SHA256 (rust/crates/byteorder-1.4.3.crate) = 14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610
+SIZE (rust/crates/byteorder-1.4.3.crate) = 22512
+SHA256 (rust/crates/cast-0.2.3.crate) = 4b9434b9a5aa1450faa3f9cb14ea0e8c53bb5d2b3c1bfd1ab4fc03e9f33fbfb0
+SIZE (rust/crates/cast-0.2.3.crate) = 11446
+SHA256 (rust/crates/cc-1.0.65.crate) = 95752358c8f7552394baf48cd82695b345628ad3f170d607de3ca03b8dacca15
+SIZE (rust/crates/cc-1.0.65.crate) = 52966
+SHA256 (rust/crates/cfg-if-0.1.10.crate) = 4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822
+SIZE (rust/crates/cfg-if-0.1.10.crate) = 7933
+SHA256 (rust/crates/cfg-if-1.0.0.crate) = baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd
+SIZE (rust/crates/cfg-if-1.0.0.crate) = 7934
+SHA256 (rust/crates/chrono-0.4.19.crate) = 670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73
+SIZE (rust/crates/chrono-0.4.19.crate) = 155663
+SHA256 (rust/crates/clap-2.33.3.crate) = 37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002
+SIZE (rust/crates/clap-2.33.3.crate) = 201925
+SHA256 (rust/crates/colored-2.0.0.crate) = b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd
+SIZE (rust/crates/colored-2.0.0.crate) = 21619
+SHA256 (rust/crates/const_fn-0.4.3.crate) = c478836e029dcef17fb47c89023448c64f781a046e0300e257ad8225ae59afab
+SIZE (rust/crates/const_fn-0.4.3.crate) = 15120
+SHA256 (rust/crates/criterion-0.3.4.crate) = ab327ed7354547cc2ef43cbe20ef68b988e70b4b593cbd66a2a61733123a3d23
+SIZE (rust/crates/criterion-0.3.4.crate) = 111110
+SHA256 (rust/crates/criterion-plot-0.4.3.crate) = e022feadec601fba1649cfa83586381a4ad31c6bf3a9ab7d408118b05dd9889d
+SIZE (rust/crates/criterion-plot-0.4.3.crate) = 17226
+SHA256 (rust/crates/crossbeam-channel-0.5.0.crate) = dca26ee1f8d361640700bde38b2c37d8c22b3ce2d360e1fc1c74ea4b0aa7d775
+SIZE (rust/crates/crossbeam-channel-0.5.0.crate) = 86811
+SHA256 (rust/crates/crossbeam-deque-0.8.0.crate) = 94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9
+SIZE (rust/crates/crossbeam-deque-0.8.0.crate) = 20756
+SHA256 (rust/crates/crossbeam-epoch-0.9.1.crate) = a1aaa739f95311c2c7887a76863f500026092fb1dce0161dab577e559ef3569d
+SIZE (rust/crates/crossbeam-epoch-0.9.1.crate) = 39561
+SHA256 (rust/crates/crossbeam-utils-0.8.1.crate) = 02d96d1e189ef58269ebe5b97953da3274d83a93af647c2ddd6f9dab28cedb8d
+SIZE (rust/crates/crossbeam-utils-0.8.1.crate) = 35914
+SHA256 (rust/crates/csv-1.1.6.crate) = 22813a6dc45b335f9bade10bf7271dc477e81113e89eb251a0bc2a8a81c536e1
+SIZE (rust/crates/csv-1.1.6.crate) = 886999
+SHA256 (rust/crates/csv-core-0.1.10.crate) = 2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90
+SIZE (rust/crates/csv-core-0.1.10.crate) = 25668
+SHA256 (rust/crates/ctor-0.1.17.crate) = 373c88d9506e2e9230f6107701b7d8425f4cb3f6df108ec3042a26e936666da5
+SIZE (rust/crates/ctor-0.1.17.crate) = 4793
+SHA256 (rust/crates/difference-2.0.0.crate) = 524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198
+SIZE (rust/crates/difference-2.0.0.crate) = 147616
+SHA256 (rust/crates/difflib-0.4.0.crate) = 6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8
+SIZE (rust/crates/difflib-0.4.0.crate) = 7638
+SHA256 (rust/crates/doc-comment-0.3.3.crate) = fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10
+SIZE (rust/crates/doc-comment-0.3.3.crate) = 4123
+SHA256 (rust/crates/either-1.6.1.crate) = e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457
+SIZE (rust/crates/either-1.6.1.crate) = 13641
+SHA256 (rust/crates/float-cmp-0.8.0.crate) = e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4
+SIZE (rust/crates/float-cmp-0.8.0.crate) = 9640
+SHA256 (rust/crates/ghost-0.1.2.crate) = 1a5bcf1bbeab73aa4cf2fde60a846858dc036163c7c33bec309f8d17de785479
+SIZE (rust/crates/ghost-0.1.2.crate) = 12777
+SHA256 (rust/crates/half-1.7.1.crate) = 62aca2aba2d62b4a7f5b33f3712cb1b0692779a56fb510499d5c0aa594daeaf3
+SIZE (rust/crates/half-1.7.1.crate) = 36168
+SHA256 (rust/crates/hermit-abi-0.1.17.crate) = 5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8
+SIZE (rust/crates/hermit-abi-0.1.17.crate) = 10065
+SHA256 (rust/crates/indoc-1.0.3.crate) = e5a75aeaaef0ce18b58056d306c27b07436fbb34b8816c53094b76dd81803136
+SIZE (rust/crates/indoc-1.0.3.crate) = 13137
+SHA256 (rust/crates/instant-0.1.9.crate) = 61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec
+SIZE (rust/crates/instant-0.1.9.crate) = 5213
+SHA256 (rust/crates/inventory-0.1.10.crate) = 0f0f7efb804ec95e33db9ad49e4252f049e37e8b0a4652e3cd61f7999f2eff7f
+SIZE (rust/crates/inventory-0.1.10.crate) = 11572
+SHA256 (rust/crates/inventory-impl-0.1.10.crate) = 75c094e94816723ab936484666968f5b58060492e880f3c8d00489a1e244fa51
+SIZE (rust/crates/inventory-impl-0.1.10.crate) = 6228
+SHA256 (rust/crates/itertools-0.9.0.crate) = 284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b
+SIZE (rust/crates/itertools-0.9.0.crate) = 96429
+SHA256 (rust/crates/itertools-0.10.0.crate) = 37d572918e350e82412fe766d24b15e6682fb2ed2bbe018280caa810397cb319
+SIZE (rust/crates/itertools-0.10.0.crate) = 109656
+SHA256 (rust/crates/itoa-0.4.7.crate) = dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736
+SIZE (rust/crates/itoa-0.4.7.crate) = 12099
+SHA256 (rust/crates/js-sys-0.3.48.crate) = dc9f84f9b115ce7843d60706df1422a916680bfdfcbdb0447c5614ff9d7e4d78
+SIZE (rust/crates/js-sys-0.3.48.crate) = 67010
+SHA256 (rust/crates/lazy_static-1.4.0.crate) = e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
+SIZE (rust/crates/lazy_static-1.4.0.crate) = 10443
+SHA256 (rust/crates/libc-0.2.80.crate) = 4d58d1b70b004888f764dfbf6a26a3b0342a1632d33968e4a179d8011c760614
+SIZE (rust/crates/libc-0.2.80.crate) = 513503
+SHA256 (rust/crates/lock_api-0.4.2.crate) = dd96ffd135b2fd7b973ac026d28085defbe8983df057ced3eb4f2130b0831312
+SIZE (rust/crates/lock_api-0.4.2.crate) = 20375
+SHA256 (rust/crates/log-0.4.11.crate) = 4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b
+SIZE (rust/crates/log-0.4.11.crate) = 36276
+SHA256 (rust/crates/memchr-2.3.4.crate) = 0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525
+SIZE (rust/crates/memchr-2.3.4.crate) = 23077
+SHA256 (rust/crates/memoffset-0.6.1.crate) = 157b4208e3059a8f9e78d559edc658e13df41410cb3ae03979c83130067fdd87
+SIZE (rust/crates/memoffset-0.6.1.crate) = 7706
+SHA256 (rust/crates/nix-0.17.0.crate) = 50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363
+SIZE (rust/crates/nix-0.17.0.crate) = 195654
+SHA256 (rust/crates/normalize-line-endings-0.3.0.crate) = 61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be
+SIZE (rust/crates/normalize-line-endings-0.3.0.crate) = 5737
+SHA256 (rust/crates/num-integer-0.1.44.crate) = d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db
+SIZE (rust/crates/num-integer-0.1.44.crate) = 22216
+SHA256 (rust/crates/num-traits-0.2.14.crate) = 9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290
+SIZE (rust/crates/num-traits-0.2.14.crate) = 45476
+SHA256 (rust/crates/num_cpus-1.13.0.crate) = 05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3
+SIZE (rust/crates/num_cpus-1.13.0.crate) = 14704
+SHA256 (rust/crates/oorandom-11.1.3.crate) = 0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575
+SIZE (rust/crates/oorandom-11.1.3.crate) = 10068
+SHA256 (rust/crates/parking_lot-0.11.1.crate) = 6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb
+SIZE (rust/crates/parking_lot-0.11.1.crate) = 39854
+SHA256 (rust/crates/parking_lot_core-0.8.2.crate) = 9ccb628cad4f84851442432c60ad8e1f607e29752d0bf072cbd0baf28aa34272
+SIZE (rust/crates/parking_lot_core-0.8.2.crate) = 32142
+SHA256 (rust/crates/paste-1.0.4.crate) = c5d65c4d95931acda4498f675e332fcbdc9a06705cd07086c510e9b6009cd1c1
+SIZE (rust/crates/paste-1.0.4.crate) = 17431
+SHA256 (rust/crates/plotters-0.3.0.crate) = 45ca0ae5f169d0917a7c7f5a9c1a3d3d9598f18f529dd2b8373ed988efea307a
+SIZE (rust/crates/plotters-0.3.0.crate) = 3242931
+SHA256 (rust/crates/plotters-backend-0.3.0.crate) = b07fffcddc1cb3a1de753caa4e4df03b79922ba43cf882acc1bdd7e8df9f4590
+SIZE (rust/crates/plotters-backend-0.3.0.crate) = 13492
+SHA256 (rust/crates/plotters-svg-0.3.0.crate) = b38a02e23bd9604b842a812063aec4ef702b57989c37b655254bb61c471ad211
+SIZE (rust/crates/plotters-svg-0.3.0.crate) = 7488
+SHA256 (rust/crates/predicates-1.0.8.crate) = f49cfaf7fdaa3bfacc6fa3e7054e65148878354a5cfddcf661df4c851f8021df
+SIZE (rust/crates/predicates-1.0.8.crate) = 26996
+SHA256 (rust/crates/predicates-2.0.2.crate) = c143348f141cc87aab5b950021bac6145d0e5ae754b0591de23244cee42c9308
+SIZE (rust/crates/predicates-2.0.2.crate) = 27280
+SHA256 (rust/crates/predicates-core-1.0.2.crate) = 57e35a3326b75e49aa85f5dc6ec15b41108cf5aee58eabb1f274dd18b73c2451
+SIZE (rust/crates/predicates-core-1.0.2.crate) = 8185
+SHA256 (rust/crates/predicates-tree-1.0.3.crate) = d7dd0fd014130206c9352efbdc92be592751b2b9274dff685348341082c6ea3d
+SIZE (rust/crates/predicates-tree-1.0.3.crate) = 6370
+SHA256 (rust/crates/proc-macro2-1.0.24.crate) = 1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71
+SIZE (rust/crates/proc-macro2-1.0.24.crate) = 37716
+SHA256 (rust/crates/pyo3-0.13.0.crate) = 5cdd01a4c2719dd1f3ceab0875fa1a2c2cd3c619477349d78f43cd716b345436
+SIZE (rust/crates/pyo3-0.13.0.crate) = 268056
+SHA256 (rust/crates/pyo3-macros-0.13.0.crate) = 7f8218769d13e354f841d559a19b0cf22cfd55959c7046ef594e5f34dbe46d16
+SIZE (rust/crates/pyo3-macros-0.13.0.crate) = 5467
+SHA256 (rust/crates/pyo3-macros-backend-0.13.0.crate) = fc4da0bfdf76f0a5971c698f2cb6b3f832a6f80f16dedeeb3f123eb0431ecce2
+SIZE (rust/crates/pyo3-macros-backend-0.13.0.crate) = 33653
+SHA256 (rust/crates/quote-1.0.8.crate) = 991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df
+SIZE (rust/crates/quote-1.0.8.crate) = 24997
+SHA256 (rust/crates/rayon-1.5.0.crate) = 8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674
+SIZE (rust/crates/rayon-1.5.0.crate) = 158037
+SHA256 (rust/crates/rayon-core-1.9.0.crate) = 9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a
+SIZE (rust/crates/rayon-core-1.9.0.crate) = 63787
+SHA256 (rust/crates/redox_syscall-0.1.57.crate) = 41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce
+SIZE (rust/crates/redox_syscall-0.1.57.crate) = 17087
+SHA256 (rust/crates/regex-1.4.2.crate) = 38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c
+SIZE (rust/crates/regex-1.4.2.crate) = 236931
+SHA256 (rust/crates/regex-automata-0.1.9.crate) = ae1ded71d66a4a97f5e961fd0cb25a5f366a42a41570d16a763a69c092c26ae4
+SIZE (rust/crates/regex-automata-0.1.9.crate) = 114560
+SHA256 (rust/crates/regex-syntax-0.6.21.crate) = 3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189
+SIZE (rust/crates/regex-syntax-0.6.21.crate) = 293572
+SHA256 (rust/crates/rustc_version-0.2.3.crate) = 138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a
+SIZE (rust/crates/rustc_version-0.2.3.crate) = 10210
+SHA256 (rust/crates/ryu-1.0.5.crate) = 71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e
+SIZE (rust/crates/ryu-1.0.5.crate) = 49570
+SHA256 (rust/crates/same-file-1.0.6.crate) = 93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502
+SIZE (rust/crates/same-file-1.0.6.crate) = 10183
+SHA256 (rust/crates/scopeguard-1.1.0.crate) = d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd
+SIZE (rust/crates/scopeguard-1.1.0.crate) = 11470
+SHA256 (rust/crates/semver-0.9.0.crate) = 1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403
+SIZE (rust/crates/semver-0.9.0.crate) = 17344
+SHA256 (rust/crates/semver-parser-0.7.0.crate) = 388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3
+SIZE (rust/crates/semver-parser-0.7.0.crate) = 10268
+SHA256 (rust/crates/serde-1.0.121.crate) = 6159e3c76cab06f6bc466244d43b35e77e9500cd685da87620addadc2a4c40b1
+SIZE (rust/crates/serde-1.0.121.crate) = 74568
+SHA256 (rust/crates/serde_cbor-0.11.1.crate) = 1e18acfa2f90e8b735b2836ab8d538de304cbb6729a7360729ea5a895d15a622
+SIZE (rust/crates/serde_cbor-0.11.1.crate) = 43947
+SHA256 (rust/crates/serde_derive-1.0.121.crate) = f3fcab8778dc651bc65cfab2e4eb64996f3c912b74002fb379c94517e1f27c46
+SIZE (rust/crates/serde_derive-1.0.121.crate) = 50683
+SHA256 (rust/crates/serde_json-1.0.64.crate) = 799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79
+SIZE (rust/crates/serde_json-1.0.64.crate) = 115138
+SHA256 (rust/crates/simplelog-0.10.0.crate) = 59d0fe306a0ced1c88a58042dc22fc2ddd000982c26d75f6aa09a394547c41e0
+SIZE (rust/crates/simplelog-0.10.0.crate) = 17910
+SHA256 (rust/crates/smallvec-1.6.0.crate) = 1a55ca5f3b68e41c979bf8c46a6f1da892ca4db8f94023ce0bd32407573b1ac0
+SIZE (rust/crates/smallvec-1.6.0.crate) = 26273
+SHA256 (rust/crates/strsim-0.8.0.crate) = 8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a
+SIZE (rust/crates/strsim-0.8.0.crate) = 9309
+SHA256 (rust/crates/syn-1.0.58.crate) = cc60a3d73ea6594cd712d830cc1f0390fd71542d8c8cd24e70cc54cdfd5e05d5
+SIZE (rust/crates/syn-1.0.58.crate) = 229250
+SHA256 (rust/crates/termcolor-1.1.2.crate) = 2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4
+SIZE (rust/crates/termcolor-1.1.2.crate) = 17287
+SHA256 (rust/crates/textwrap-0.11.0.crate) = d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060
+SIZE (rust/crates/textwrap-0.11.0.crate) = 17322
+SHA256 (rust/crates/thread_local-1.0.1.crate) = d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14
+SIZE (rust/crates/thread_local-1.0.1.crate) = 12609
+SHA256 (rust/crates/time-0.1.44.crate) = 6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255
+SIZE (rust/crates/time-0.1.44.crate) = 28885
+SHA256 (rust/crates/tinytemplate-1.2.1.crate) = be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc
+SIZE (rust/crates/tinytemplate-1.2.1.crate) = 26490
+SHA256 (rust/crates/tree-sitter-0.19.2.crate) = 8085411272e5e472f38ed09b911b29ab61979f21cd5fba3454738b85b438ba20
+SIZE (rust/crates/tree-sitter-0.19.2.crate) = 123969
+SHA256 (rust/crates/treeline-0.1.0.crate) = a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41
+SIZE (rust/crates/treeline-0.1.0.crate) = 3855
+SHA256 (rust/crates/unicode-width-0.1.8.crate) = 9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3
+SIZE (rust/crates/unicode-width-0.1.8.crate) = 16732
+SHA256 (rust/crates/unicode-xid-0.2.1.crate) = f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564
+SIZE (rust/crates/unicode-xid-0.2.1.crate) = 14392
+SHA256 (rust/crates/unindent-0.1.7.crate) = f14ee04d9415b52b3aeab06258a3f07093182b88ba0f9b8d203f211a7a7d41c7
+SIZE (rust/crates/unindent-0.1.7.crate) = 8346
+SHA256 (rust/crates/vec_map-0.8.2.crate) = f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191
+SIZE (rust/crates/vec_map-0.8.2.crate) = 14466
+SHA256 (rust/crates/void-1.0.2.crate) = 6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d
+SIZE (rust/crates/void-1.0.2.crate) = 2356
+SHA256 (rust/crates/wait-timeout-0.2.0.crate) = 9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6
+SIZE (rust/crates/wait-timeout-0.2.0.crate) = 12441
+SHA256 (rust/crates/walkdir-2.3.1.crate) = 777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d
+SIZE (rust/crates/walkdir-2.3.1.crate) = 23413
+SHA256 (rust/crates/wasi-0.10.0+wasi-snapshot-preview1.crate) = 1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f
+SIZE (rust/crates/wasi-0.10.0+wasi-snapshot-preview1.crate) = 26964
+SHA256 (rust/crates/wasm-bindgen-0.2.71.crate) = 7ee1280240b7c461d6a0071313e08f34a60b0365f14260362e5a2b17d1d31aa7
+SIZE (rust/crates/wasm-bindgen-0.2.71.crate) = 159260
+SHA256 (rust/crates/wasm-bindgen-backend-0.2.71.crate) = 5b7d8b6942b8bb3a9b0e73fc79b98095a27de6fa247615e59d096754a3bc2aa8
+SIZE (rust/crates/wasm-bindgen-backend-0.2.71.crate) = 25432
+SHA256 (rust/crates/wasm-bindgen-macro-0.2.71.crate) = e5ac38da8ef716661f0f36c0d8320b89028efe10c7c0afde65baffb496ce0d3b
+SIZE (rust/crates/wasm-bindgen-macro-0.2.71.crate) = 11548
+SHA256 (rust/crates/wasm-bindgen-macro-support-0.2.71.crate) = cc053ec74d454df287b9374ee8abb36ffd5acb95ba87da3ba5b7d3fe20eb401e
+SIZE (rust/crates/wasm-bindgen-macro-support-0.2.71.crate) = 17855
+SHA256 (rust/crates/wasm-bindgen-shared-0.2.71.crate) = 7d6f8ec44822dd71f5f221a5847fb34acd9060535c1211b70a05844c0f6383b1
+SIZE (rust/crates/wasm-bindgen-shared-0.2.71.crate) = 6693
+SHA256 (rust/crates/web-sys-0.3.48.crate) = ec600b26223b2948cedfde2a0aa6756dcf1fef616f43d7b3097aaf53a6c4d92b
+SIZE (rust/crates/web-sys-0.3.48.crate) = 648255
+SHA256 (rust/crates/winapi-0.3.9.crate) = 5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419
+SIZE (rust/crates/winapi-0.3.9.crate) = 1200382
+SHA256 (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6
+SIZE (rust/crates/winapi-i686-pc-windows-gnu-0.4.0.crate) = 2918815
+SHA256 (rust/crates/winapi-util-0.1.5.crate) = 70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178
+SIZE (rust/crates/winapi-util-0.1.5.crate) = 10164
+SHA256 (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f
+SIZE (rust/crates/winapi-x86_64-pc-windows-gnu-0.4.0.crate) = 2947998
+SHA256 (googleprojectzero-weggli-v0.2.2_GH0.tar.gz) = f308370fd02e47ac39457d9a4931bb1158f42d55991052d88fc6b38c0f134608
+SIZE (googleprojectzero-weggli-v0.2.2_GH0.tar.gz) = 991843
diff --git a/security/weggli/pkg-descr b/security/weggli/pkg-descr
new file mode 100644
index 000000000000..b4d0ea21dbce
--- /dev/null
+++ b/security/weggli/pkg-descr
@@ -0,0 +1,26 @@
+weggli is a fast and robust semantic search tool for C and C++ codebases. It is
+designed to help security researchers identify interesting functionality in
+large codebases.
+
+weggli performs pattern matching on Abstract Syntax Trees based on user
+provided queries. Its query language resembles C and C++ code, making it easy
+to turn interesting code patterns into queries.
+
+weggli is inspired by great tools like Semgrep, Coccinelle, joern and CodeQL,
+but makes some different design decisions:
+- C++ support: weggli has first class support for modern C++ constructs, such
+ as lambda expressions, range-based for loops and constexprs.
+- Minimal setup: weggli should work out-of-the box against most software you
+ will encounter. weggli does not require the ability to build the software and
+ can work with incomplete sources or missing dependencies.
+- Interactive: weggli is designed for interactive usage and fast query
+ performance. Most of the time, a weggli query will be faster than a grep
+ search. The goal is to enable an interactive workflow where quick switching
+ between code review and query creation/improvement is possible.
+- Greedy: weggli's pattern matching is designed to find as many (useful)
+ matches as possible for a specific query. While this increases the risk of
+ false positives it simplifies query creation. For example, the query $x = 10;
+ will match both assignment expressions (foo = 10;) and declarations
+ (int bar = 10;).
+
+WWW: https://github.com/googleprojectzero/weggli