aboutsummaryrefslogtreecommitdiffstats
path: root/contrib
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2025-03-14 00:51:45 +0000
committerAlexander Smirnov <alex@ydb.tech>2025-03-14 00:51:45 +0000
commit3e3d50dea42f66b1ba457411b8864990f90bbe21 (patch)
tree7d75df352fc045a84d46764b96b496b5775bbf44 /contrib
parent7778cd274683ce11e318b799ea12c7bc0b3a4bdd (diff)
parent422642b601155a296cb0a69eb9b1f7ba146ffa49 (diff)
downloadydb-3e3d50dea42f66b1ba457411b8864990f90bbe21.tar.gz
Merge branch 'rightlib' into merge-libs-250314-0050
Diffstat (limited to 'contrib')
-rw-r--r--contrib/libs/croaring/.yandex_meta/override.nix4
-rw-r--r--contrib/libs/croaring/include/roaring/portability.h5
-rw-r--r--contrib/libs/croaring/include/roaring/roaring_version.h4
-rw-r--r--contrib/libs/croaring/ya.make4
-rw-r--r--contrib/python/setuptools/py3/.dist-info/METADATA2
-rw-r--r--contrib/python/setuptools/py3/pkg_resources/__init__.py17
-rw-r--r--contrib/python/setuptools/py3/ya.make2
-rw-r--r--contrib/restricted/boost/thread/.yandex_meta/__init__.py68
-rw-r--r--contrib/restricted/boost/thread/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/thread/patches/pr398-unify-slashes.patch31
-rw-r--r--contrib/restricted/boost/throw_exception/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/throw_exception/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/tokenizer/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/tokenizer/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/tti/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/tti/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/tuple/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/tuple/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/type_index/.yandex_meta/__init__.py20
-rw-r--r--contrib/restricted/boost/type_index/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/type_traits/.yandex_meta/__init__.py26
-rw-r--r--contrib/restricted/boost/type_traits/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/type_traits/patches/fix-clang-cl-build.patch11
-rw-r--r--contrib/restricted/boost/typeof/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/typeof/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/unordered/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/unordered/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/unordered/patches/01-deprecated-include.patch13
-rw-r--r--contrib/restricted/boost/utility/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/utility/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/variant/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/variant/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/variant2/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/variant2/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/winapi/.yandex_meta/__init__.py23
-rw-r--r--contrib/restricted/boost/winapi/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/xpressive/.yandex_meta/__init__.py21
-rw-r--r--contrib/restricted/boost/xpressive/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/xpressive/patches/deprecated-copy.patch118
-rw-r--r--contrib/restricted/boost/xpressive/patches/modernize-throw-specs.patch11
40 files changed, 698 insertions, 17 deletions
diff --git a/contrib/libs/croaring/.yandex_meta/override.nix b/contrib/libs/croaring/.yandex_meta/override.nix
index b259cae422..60171a848a 100644
--- a/contrib/libs/croaring/.yandex_meta/override.nix
+++ b/contrib/libs/croaring/.yandex_meta/override.nix
@@ -1,12 +1,12 @@
pkgs: attrs: with pkgs; with attrs; rec {
pname = "croaring";
- version = "4.2.2";
+ version = "4.2.3";
src = fetchFromGitHub {
owner = "RoaringBitmap";
repo = "CRoaring";
rev = "v${version}";
- hash = "sha256-QaCYtuUU7hZ03x/bPEGG7jUlzbRNMGwi9s/hIHyd3U4=";
+ hash = "sha256-1yklwZj12yeGg8a/oss4EUHj8eezhKuo4PUltVdaXaM=";
};
patches = [];
diff --git a/contrib/libs/croaring/include/roaring/portability.h b/contrib/libs/croaring/include/roaring/portability.h
index 2db112504c..8c6d3c2bac 100644
--- a/contrib/libs/croaring/include/roaring/portability.h
+++ b/contrib/libs/croaring/include/roaring/portability.h
@@ -56,12 +56,11 @@
#ifndef _POSIX_C_SOURCE
#define _POSIX_C_SOURCE 200809L
#endif // !(defined(_POSIX_C_SOURCE)) || (_POSIX_C_SOURCE < 200809L)
-#if !(defined(_XOPEN_SOURCE)) || (_XOPEN_SOURCE < 700)
-#define _XOPEN_SOURCE 700
-#endif // !(defined(_XOPEN_SOURCE)) || (_XOPEN_SOURCE < 700)
#ifdef __illumos__
+#ifndef __EXTENSIONS__
#define __EXTENSIONS__
+#endif // __EXTENSIONS__
#endif
#include <stdbool.h>
diff --git a/contrib/libs/croaring/include/roaring/roaring_version.h b/contrib/libs/croaring/include/roaring/roaring_version.h
index 84618b27ca..98819566a8 100644
--- a/contrib/libs/croaring/include/roaring/roaring_version.h
+++ b/contrib/libs/croaring/include/roaring/roaring_version.h
@@ -2,11 +2,11 @@
// /include/roaring/roaring_version.h automatically generated by release.py, do not change by hand
#ifndef ROARING_INCLUDE_ROARING_VERSION
#define ROARING_INCLUDE_ROARING_VERSION
-#define ROARING_VERSION "4.2.2"
+#define ROARING_VERSION "4.2.3"
enum {
ROARING_VERSION_MAJOR = 4,
ROARING_VERSION_MINOR = 2,
- ROARING_VERSION_REVISION = 2
+ ROARING_VERSION_REVISION = 3
};
#endif // ROARING_INCLUDE_ROARING_VERSION
// clang-format on \ No newline at end of file
diff --git a/contrib/libs/croaring/ya.make b/contrib/libs/croaring/ya.make
index 40a975908d..b50e7eaa5e 100644
--- a/contrib/libs/croaring/ya.make
+++ b/contrib/libs/croaring/ya.make
@@ -10,9 +10,9 @@ LICENSE(
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(4.2.2)
+VERSION(4.2.3)
-ORIGINAL_SOURCE(https://github.com/RoaringBitmap/CRoaring/archive/v4.2.2.tar.gz)
+ORIGINAL_SOURCE(https://github.com/RoaringBitmap/CRoaring/archive/v4.2.3.tar.gz)
ADDINCL(
GLOBAL contrib/libs/croaring/include
diff --git a/contrib/python/setuptools/py3/.dist-info/METADATA b/contrib/python/setuptools/py3/.dist-info/METADATA
index b947a7318f..2b81ee9bd4 100644
--- a/contrib/python/setuptools/py3/.dist-info/METADATA
+++ b/contrib/python/setuptools/py3/.dist-info/METADATA
@@ -1,6 +1,6 @@
Metadata-Version: 2.2
Name: setuptools
-Version: 75.8.1
+Version: 75.8.2
Summary: Easily download, build, install, upgrade, and uninstall Python packages
Author-email: Python Packaging Authority <distutils-sig@python.org>
Project-URL: Source, https://github.com/pypa/setuptools
diff --git a/contrib/python/setuptools/py3/pkg_resources/__init__.py b/contrib/python/setuptools/py3/pkg_resources/__init__.py
index df522e5b86..b25c6c1f65 100644
--- a/contrib/python/setuptools/py3/pkg_resources/__init__.py
+++ b/contrib/python/setuptools/py3/pkg_resources/__init__.py
@@ -708,14 +708,19 @@ class WorkingSet:
If there is no active distribution for the requested project, ``None``
is returned.
"""
- dist = self.by_key.get(req.key)
+ dist: Distribution | None = None
- if dist is None:
- canonical_key = self.normalized_to_canonical_keys.get(req.key)
+ candidates = (
+ req.key,
+ self.normalized_to_canonical_keys.get(req.key),
+ safe_name(req.key).replace(".", "-"),
+ )
- if canonical_key is not None:
- req.key = canonical_key
- dist = self.by_key.get(canonical_key)
+ for candidate in filter(None, candidates):
+ dist = self.by_key.get(candidate)
+ if dist:
+ req.key = candidate
+ break
if dist is not None and dist not in req:
# XXX add more info
diff --git a/contrib/python/setuptools/py3/ya.make b/contrib/python/setuptools/py3/ya.make
index 24de6a7a6d..d28ff13d74 100644
--- a/contrib/python/setuptools/py3/ya.make
+++ b/contrib/python/setuptools/py3/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(75.8.1)
+VERSION(75.8.2)
LICENSE(MIT)
diff --git a/contrib/restricted/boost/thread/.yandex_meta/__init__.py b/contrib/restricted/boost/thread/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..1c4ac36d69
--- /dev/null
+++ b/contrib/restricted/boost/thread/.yandex_meta/__init__.py
@@ -0,0 +1,68 @@
+import os.path
+
+from devtools.yamaker import boost, fileutil, pathutil
+from devtools.yamaker.modules import GLOBAL, Linkable, Switch
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(
+ self,
+ SRCS=["src/future.cpp"],
+ )
+ with self.yamakes["."] as thread:
+ thread.after(
+ "SRCS",
+ Switch(
+ {
+ "OS_WINDOWS": Linkable(
+ SRCS=fileutil.files(
+ os.path.join(self.dstdir, "src", "win32"), rel=self.dstdir, test=pathutil.is_source
+ ),
+ CFLAGS=[
+ GLOBAL("-DBOOST_THREAD_WIN32"),
+ "-DBOOST_THREAD_USES_CHRONO",
+ "-DWIN32_LEAN_AND_MEAN",
+ "-DBOOST_USE_WINDOWS_H",
+ ],
+ ),
+ "default": Linkable(
+ SRCS=fileutil.files(
+ os.path.join(self.dstdir, "src", "pthread"),
+ rel=self.dstdir,
+ # once_atomic is conditionally included from once.cpp
+ test=lambda p: pathutil.is_source(p) and p != "src/pthread/once_atomic.cpp",
+ ),
+ CFLAGS=[GLOBAL("-DBOOST_THREAD_POSIX"), "-DBOOST_THREAD_DONT_USE_CHRONO"],
+ ),
+ }
+ ),
+ )
+ thread.after(
+ "CFLAGS",
+ Switch(
+ {
+ "DYNAMIC_BOOST": Linkable(CFLAGS=["-DBOOST_THREAD_BUILD_DLL", GLOBAL("-DBOOST_THREAD_USE_DLL")]),
+ "default": Linkable(CFLAGS=["-DBOOST_THREAD_BUILD_LIB", GLOBAL("-DBOOST_THREAD_USE_LIB")]),
+ }
+ ),
+ )
+
+
+boost_thread = NixSourceProject(
+ nixattr="boost_thread",
+ arcdir=boost.make_arcdir("thread"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ "src/",
+ ],
+ copy_sources_except=[
+ # only used in tests
+ "tss_null.cpp",
+ ],
+ disable_includes=[
+ "vxCpuLib.h",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/thread/.yandex_meta/default.nix b/contrib/restricted/boost/thread/.yandex_meta/default.nix
new file mode 100644
index 0000000000..ffc274d9e5
--- /dev/null
+++ b/contrib/restricted/boost/thread/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_thread = stdenv.mkDerivation rec {
+ pname = "boost_thread";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "thread";
+ rev = "boost-${version}";
+ hash = "sha256-b/71ovr7i4YorEnFSYHXwYgv4fgSWUobCORaX7hmxmw=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/thread/patches/pr398-unify-slashes.patch b/contrib/restricted/boost/thread/patches/pr398-unify-slashes.patch
new file mode 100644
index 0000000000..5f52b7783a
--- /dev/null
+++ b/contrib/restricted/boost/thread/patches/pr398-unify-slashes.patch
@@ -0,0 +1,31 @@
+From 8811487643d9a89c01135304704dec556c646881 Mon Sep 17 00:00:00 2001
+From: Yuriy Chernyshov <thegeorg@yandex-team.com>
+Date: Sun, 4 Feb 2024 13:03:02 +0100
+Subject: [PATCH] Use forward slashes to separate include files
+
+We use automatic dependency tracking for #includes, and wrl includes have to be tracked differently whenever we are cross-compiling the code.
+
+This PR unifies such tracking. Forward slashes work just fine on Windows.
+---
+ src/win32/thread.cpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/win32/thread.cpp b/src/win32/thread.cpp
+index 000ab8779..45c2651fb 100644
+--- a/src/win32/thread.cpp
++++ b/src/win32/thread.cpp
+@@ -34,10 +34,10 @@
+ #include <mutex>
+ #include <atomic>
+ #include <Activation.h>
+-#include <wrl\client.h>
+-#include <wrl\event.h>
+-#include <wrl\wrappers\corewrappers.h>
+-#include <wrl\ftm.h>
++#include <wrl/client.h>
++#include <wrl/event.h>
++#include <wrl/wrappers/corewrappers.h>
++#include <wrl/ftm.h>
+ #include <windows.system.threading.h>
+ #pragma comment(lib, "runtimeobject.lib")
+ #endif
diff --git a/contrib/restricted/boost/throw_exception/.yandex_meta/__init__.py b/contrib/restricted/boost/throw_exception/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..a7a6661083
--- /dev/null
+++ b/contrib/restricted/boost/throw_exception/.yandex_meta/__init__.py
@@ -0,0 +1,17 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_throw_exception = NixSourceProject(
+ nixattr="boost_throw_exception",
+ arcdir=boost.make_arcdir("throw_exception"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/throw_exception/.yandex_meta/default.nix b/contrib/restricted/boost/throw_exception/.yandex_meta/default.nix
new file mode 100644
index 0000000000..207c7bfaa9
--- /dev/null
+++ b/contrib/restricted/boost/throw_exception/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_throw_exception = stdenv.mkDerivation rec {
+ pname = "boost_throw_exception";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "throw_exception";
+ rev = "boost-${version}";
+ hash = "sha256-qNUf32xhEHnEXeMlqHaqhJhez543ETf/lQ/9HR5RPDw=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/tokenizer/.yandex_meta/__init__.py b/contrib/restricted/boost/tokenizer/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..3cfd890b03
--- /dev/null
+++ b/contrib/restricted/boost/tokenizer/.yandex_meta/__init__.py
@@ -0,0 +1,17 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_tokenizer = NixSourceProject(
+ nixattr="boost_tokenizer",
+ arcdir=boost.make_arcdir("tokenizer"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/tokenizer/.yandex_meta/default.nix b/contrib/restricted/boost/tokenizer/.yandex_meta/default.nix
new file mode 100644
index 0000000000..a009f71468
--- /dev/null
+++ b/contrib/restricted/boost/tokenizer/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_tokenizer = stdenv.mkDerivation rec {
+ pname = "boost_tokenizer";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "tokenizer";
+ rev = "boost-${version}";
+ hash = "sha256-lSJfD4+xHUWOOwXaKktm04BWWE9sBad3K2TB6coE71I=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/tti/.yandex_meta/__init__.py b/contrib/restricted/boost/tti/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..7b3c7abd27
--- /dev/null
+++ b/contrib/restricted/boost/tti/.yandex_meta/__init__.py
@@ -0,0 +1,17 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_tti = NixSourceProject(
+ nixattr="boost_tti",
+ arcdir=boost.make_arcdir("tti"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/tti/.yandex_meta/default.nix b/contrib/restricted/boost/tti/.yandex_meta/default.nix
new file mode 100644
index 0000000000..940b1b8e0d
--- /dev/null
+++ b/contrib/restricted/boost/tti/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_tti = stdenv.mkDerivation rec {
+ pname = "boost_tti";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "tti";
+ rev = "boost-${version}";
+ hash = "sha256-o2kdpe1nEs6/GZhL8eRN+/Ec74fu6/MkH6I3Cy+Mpck=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/tuple/.yandex_meta/__init__.py b/contrib/restricted/boost/tuple/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..45e5b0832e
--- /dev/null
+++ b/contrib/restricted/boost/tuple/.yandex_meta/__init__.py
@@ -0,0 +1,17 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_tuple = NixSourceProject(
+ nixattr="boost_tuple",
+ arcdir=boost.make_arcdir("tuple"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/tuple/.yandex_meta/default.nix b/contrib/restricted/boost/tuple/.yandex_meta/default.nix
new file mode 100644
index 0000000000..47217c89d1
--- /dev/null
+++ b/contrib/restricted/boost/tuple/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_tuple = stdenv.mkDerivation rec {
+ pname = "boost_tuple";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "tuple";
+ rev = "boost-${version}";
+ hash = "sha256-Xw5lI5HhfkoQGlsMORzfyY81Eb73TZTJVSBiNTWt9zY=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/type_index/.yandex_meta/__init__.py b/contrib/restricted/boost/type_index/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..229dad22d9
--- /dev/null
+++ b/contrib/restricted/boost/type_index/.yandex_meta/__init__.py
@@ -0,0 +1,20 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_type_index = NixSourceProject(
+ nixattr="boost_type_index",
+ arcdir=boost.make_arcdir("type_index"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ disable_includes=[
+ "BOOST_TYPE_INDEX_USER_TYPEINDEX",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/type_index/.yandex_meta/default.nix b/contrib/restricted/boost/type_index/.yandex_meta/default.nix
new file mode 100644
index 0000000000..cb5b116bba
--- /dev/null
+++ b/contrib/restricted/boost/type_index/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_type_index = stdenv.mkDerivation rec {
+ pname = "boost_type_index";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "type_index";
+ rev = "boost-${version}";
+ hash = "sha256-+WBnXkT1cs+Do4L8IfWfqGbdhP/ubxotXUIHH9tL/jU=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/type_traits/.yandex_meta/__init__.py b/contrib/restricted/boost/type_traits/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..94ede53822
--- /dev/null
+++ b/contrib/restricted/boost/type_traits/.yandex_meta/__init__.py
@@ -0,0 +1,26 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_type_traits = NixSourceProject(
+ nixattr="boost_type_traits",
+ arcdir=boost.make_arcdir("type_traits"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ disable_includes=[
+ # if defined(BOOST_TT_PREPROCESSING_MODE)
+ "PP1",
+ "PP2",
+ "PP3",
+ "PPI",
+ "BOOST_PP_ITERATE()",
+ "stdfloat",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/type_traits/.yandex_meta/default.nix b/contrib/restricted/boost/type_traits/.yandex_meta/default.nix
new file mode 100644
index 0000000000..01ee9901b7
--- /dev/null
+++ b/contrib/restricted/boost/type_traits/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_type_traits = stdenv.mkDerivation rec {
+ pname = "boost_type_traits";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "type_traits";
+ rev = "boost-${version}";
+ hash = "sha256-kunJMhryv/tq+bsX4gNVYFkkQfF5MJtIzw/sCgdbyqw=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/type_traits/patches/fix-clang-cl-build.patch b/contrib/restricted/boost/type_traits/patches/fix-clang-cl-build.patch
new file mode 100644
index 0000000000..5a4fdda7cf
--- /dev/null
+++ b/contrib/restricted/boost/type_traits/patches/fix-clang-cl-build.patch
@@ -0,0 +1,11 @@
+--- contrib/restricted/boost/type_traits/include/boost/type_traits/type_with_alignment.hpp (index)
++++ contrib/restricted/boost/type_traits/include/boost/type_traits/type_with_alignment.hpp (working tree)
+@@ -83,7 +83,7 @@ struct type_with_alignment
+ typedef typename boost::detail::char_alignment<Align, boost::alignment_of<char>::value >= Align>::type type;
+ };
+
+-#if (defined(__GNUC__) || (defined (__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130)) || defined(__clang__)) && !defined(BOOST_TT_DISABLE_INTRINSICS)
++#if (defined(__GNUC__) || (defined (__SUNPRO_CC) && (__SUNPRO_CC >= 0x5130)) || defined(__clang__)) && !defined(BOOST_TT_DISABLE_INTRINSICS) && !defined(_MSC_VER)
+ namespace tt_align_ns {
+ struct __attribute__((__aligned__(2))) a2 {};
+ struct __attribute__((__aligned__(4))) a4 {};
diff --git a/contrib/restricted/boost/typeof/.yandex_meta/__init__.py b/contrib/restricted/boost/typeof/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..3acd395764
--- /dev/null
+++ b/contrib/restricted/boost/typeof/.yandex_meta/__init__.py
@@ -0,0 +1,17 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_typeof = NixSourceProject(
+ nixattr="boost_typeof",
+ arcdir=boost.make_arcdir("typeof"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/typeof/.yandex_meta/default.nix b/contrib/restricted/boost/typeof/.yandex_meta/default.nix
new file mode 100644
index 0000000000..09702c18b6
--- /dev/null
+++ b/contrib/restricted/boost/typeof/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_typeof = stdenv.mkDerivation rec {
+ pname = "boost_typeof";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "typeof";
+ rev = "boost-${version}";
+ hash = "sha256-xalriryMDMTLSSXkyhORlUtFazO5cb9Vahs66RCQRNQ=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/unordered/.yandex_meta/__init__.py b/contrib/restricted/boost/unordered/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..6c69399694
--- /dev/null
+++ b/contrib/restricted/boost/unordered/.yandex_meta/__init__.py
@@ -0,0 +1,17 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_unordered = NixSourceProject(
+ nixattr="boost_unordered",
+ arcdir="contrib/restricted/boost/unordered",
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/unordered/.yandex_meta/default.nix b/contrib/restricted/boost/unordered/.yandex_meta/default.nix
new file mode 100644
index 0000000000..f0f251bc9d
--- /dev/null
+++ b/contrib/restricted/boost/unordered/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_unordered = stdenv.mkDerivation rec {
+ pname = "boost_unordered";
+ version = "1.77.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "unordered";
+ rev = "boost-${version}";
+ hash = "sha256-BTr6u7gQVQeU2eTBDPRpFBInlT6hnGpaeu2h8OCQANg=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/unordered/patches/01-deprecated-include.patch b/contrib/restricted/boost/unordered/patches/01-deprecated-include.patch
new file mode 100644
index 0000000000..48e1247191
--- /dev/null
+++ b/contrib/restricted/boost/unordered/patches/01-deprecated-include.patch
@@ -0,0 +1,13 @@
+This patch is similar with ca2a46f290b28eec6672292fbf347f6d192c5a1c
+
+--- contrib/restricted/boost/unordered/include/boost/unordered/detail/implementation.hpp (index)
++++ contrib/restricted/boost/unordered/include/boost/unordered/detail/implementation.hpp (working tree)
+@@ -26,7 +26,7 @@
+ #include <boost/preprocessor/repetition/repeat_from_to.hpp>
+ #include <boost/preprocessor/seq/enum.hpp>
+ #include <boost/preprocessor/seq/size.hpp>
+-#include <boost/swap.hpp>
++#include <boost/core/swap.hpp>
+ #include <boost/throw_exception.hpp>
+ #include <boost/tuple/tuple.hpp>
+ #include <boost/type_traits/add_lvalue_reference.hpp> \ No newline at end of file
diff --git a/contrib/restricted/boost/utility/.yandex_meta/__init__.py b/contrib/restricted/boost/utility/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..5d03d83611
--- /dev/null
+++ b/contrib/restricted/boost/utility/.yandex_meta/__init__.py
@@ -0,0 +1,17 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_utility = NixSourceProject(
+ nixattr="boost_utility",
+ arcdir=boost.make_arcdir("utility"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/utility/.yandex_meta/default.nix b/contrib/restricted/boost/utility/.yandex_meta/default.nix
new file mode 100644
index 0000000000..ff173309a5
--- /dev/null
+++ b/contrib/restricted/boost/utility/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_utility = stdenv.mkDerivation rec {
+ pname = "boost_utility";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "utility";
+ rev = "boost-${version}";
+ hash = "sha256-514BYSu5ZrDNmqMOITsxU9WLqhpGXH3uac9kWxUx8TA=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/variant/.yandex_meta/__init__.py b/contrib/restricted/boost/variant/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..9a29174340
--- /dev/null
+++ b/contrib/restricted/boost/variant/.yandex_meta/__init__.py
@@ -0,0 +1,17 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_variant = NixSourceProject(
+ nixattr="boost_variant",
+ arcdir=boost.make_arcdir("variant"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/variant/.yandex_meta/default.nix b/contrib/restricted/boost/variant/.yandex_meta/default.nix
new file mode 100644
index 0000000000..a1d50a9a13
--- /dev/null
+++ b/contrib/restricted/boost/variant/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_variant = stdenv.mkDerivation rec {
+ pname = "boost_variant";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "variant";
+ rev = "boost-${version}";
+ hash = "sha256-vW5D4UKGNKlrfWPk8AEsTvrEr5vtuwegG83Z7eQ572w=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/variant2/.yandex_meta/__init__.py b/contrib/restricted/boost/variant2/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..a8689f09d9
--- /dev/null
+++ b/contrib/restricted/boost/variant2/.yandex_meta/__init__.py
@@ -0,0 +1,17 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_variant2 = NixSourceProject(
+ nixattr="boost_variant2",
+ arcdir="contrib/restricted/boost/variant2",
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/variant2/.yandex_meta/default.nix b/contrib/restricted/boost/variant2/.yandex_meta/default.nix
new file mode 100644
index 0000000000..b658be9c89
--- /dev/null
+++ b/contrib/restricted/boost/variant2/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_variant2 = stdenv.mkDerivation rec {
+ pname = "boost_variant2";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "variant2";
+ rev = "boost-${version}";
+ hash = "sha256-lcKjtj83zJ6VdbSSNZnRsi7XonYrWMMpZHAaGv2PSvc=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/winapi/.yandex_meta/__init__.py b/contrib/restricted/boost/winapi/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..a985f9f357
--- /dev/null
+++ b/contrib/restricted/boost/winapi/.yandex_meta/__init__.py
@@ -0,0 +1,23 @@
+from devtools.yamaker import boost
+from devtools.yamaker.modules import GLOBAL, Linkable, Switch
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+ with self.yamakes["."] as winapi:
+ winapi.after("CFLAGS", Switch({"OS_WINDOWS": Linkable(CFLAGS=[GLOBAL("-DBOOST_USE_WINDOWS_H")])}))
+
+
+boost_winapi = NixSourceProject(
+ nixattr="boost_winapi",
+ arcdir=boost.make_arcdir("winapi"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ disable_includes=[
+ "_cygwin.h",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/winapi/.yandex_meta/default.nix b/contrib/restricted/boost/winapi/.yandex_meta/default.nix
new file mode 100644
index 0000000000..d34770f89d
--- /dev/null
+++ b/contrib/restricted/boost/winapi/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_winapi = stdenv.mkDerivation rec {
+ pname = "boost_winapi";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "winapi";
+ rev = "boost-${version}";
+ hash = "sha256-6K3opuoL0D4DkoicUEpTM2H3FRZZwPIi+ouDXN821JQ=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/xpressive/.yandex_meta/__init__.py b/contrib/restricted/boost/xpressive/.yandex_meta/__init__.py
new file mode 100644
index 0000000000..1587d869e8
--- /dev/null
+++ b/contrib/restricted/boost/xpressive/.yandex_meta/__init__.py
@@ -0,0 +1,21 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_xpressive = NixSourceProject(
+ nixattr="boost_xpressive",
+ arcdir=boost.make_arcdir("xpressive"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ disable_includes=[
+ # from old boost versions
+ "boost/spirit/fusion/*",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/xpressive/.yandex_meta/default.nix b/contrib/restricted/boost/xpressive/.yandex_meta/default.nix
new file mode 100644
index 0000000000..b82ec24508
--- /dev/null
+++ b/contrib/restricted/boost/xpressive/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_xpressive = stdenv.mkDerivation rec {
+ pname = "boost_xpressive";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "xpressive";
+ rev = "boost-${version}";
+ hash = "sha256-w9iw5hFB0m1GifDU7bGQ710UwvBfDXYaFDF3REH/ghI=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/xpressive/patches/deprecated-copy.patch b/contrib/restricted/boost/xpressive/patches/deprecated-copy.patch
new file mode 100644
index 0000000000..55521fe6c0
--- /dev/null
+++ b/contrib/restricted/boost/xpressive/patches/deprecated-copy.patch
@@ -0,0 +1,118 @@
+--- a/include/boost/xpressive/detail/core/matcher/alternate_matcher.hpp (index)
++++ b/include/boost/xpressive/detail/core/matcher/alternate_matcher.hpp (working tree)
+@@ -98,6 +98,8 @@ namespace boost { namespace xpressive { namespace detail
+ {
+ }
+
++ alternate_matcher(const alternate_matcher& other) = default;
++
+ template<typename BidiIter, typename Next>
+ bool match(match_state<BidiIter> &state, Next const &next) const
+ {
+@@ -119,7 +121,7 @@ namespace boost { namespace xpressive { namespace detail
+ }
+
+ private:
+- alternate_matcher &operator =(alternate_matcher const &);
++ alternate_matcher &operator =(alternate_matcher const &) = delete;
+
+ bool can_match_(char_type ch, Traits const &tr) const
+ {
+--- a/include/boost/xpressive/detail/core/matcher/attr_matcher.hpp (index)
++++ b/include/boost/xpressive/detail/core/matcher/attr_matcher.hpp (working tree)
+@@ -42,7 +42,7 @@ namespace boost { namespace xpressive { namespace detail
+ return this->traits_.translate(ch1);
+ }
+ private:
+- char_translate &operator =(char_translate const &);
++ char_translate &operator =(char_translate const &) = delete;
+ };
+
+ ///////////////////////////////////////////////////////////////////////////////
+@@ -63,7 +63,7 @@ namespace boost { namespace xpressive { namespace detail
+ return this->traits_.translate_nocase(ch1);
+ }
+ private:
+- char_translate &operator =(char_translate const &);
++ char_translate &operator =(char_translate const &) = delete;
+ };
+
+ ///////////////////////////////////////////////////////////////////////////////
+--- a/include/boost/xpressive/detail/core/matcher/optional_matcher.hpp (index)
++++ b/include/boost/xpressive/detail/core/matcher/optional_matcher.hpp (working tree)
+@@ -34,6 +34,8 @@ namespace boost { namespace xpressive { namespace detail
+ {
+ }
+
++ optional_matcher(const optional_matcher& other) = default;
++
+ template<typename BidiIter, typename Next>
+ bool match(match_state<BidiIter> &state, Next const &next) const
+ {
+@@ -55,7 +57,7 @@ namespace boost { namespace xpressive { namespace detail
+ || this->xpr_.BOOST_NESTED_TEMPLATE push_match<Next>(state);
+ }
+
+- optional_matcher &operator =(optional_matcher const &);
++ optional_matcher &operator =(optional_matcher const &) = delete;
+ };
+
+ ///////////////////////////////////////////////////////////////////////////////
+@@ -98,6 +100,8 @@ namespace boost { namespace xpressive { namespace detail
+ return this->match_(state, next, Greedy());
+ }
+
++ optional_mark_matcher(const optional_mark_matcher& other) = default;
++
+ private:
+ template<typename BidiIter, typename Next>
+ bool match_(match_state<BidiIter> &state, Next const &next, mpl::true_) const // Greedy
+@@ -113,7 +117,7 @@ namespace boost { namespace xpressive { namespace detail
+ || this->xpr_.BOOST_NESTED_TEMPLATE push_match<Next>(state);
+ }
+
+- optional_mark_matcher &operator =(optional_mark_matcher const &);
++ optional_mark_matcher &operator =(optional_mark_matcher const &) = delete;
+ };
+
+ }}}
+--- a/include/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp (index)
++++ b/include/boost/xpressive/detail/core/matcher/simple_repeat_matcher.hpp (working tree)
+@@ -82,6 +82,8 @@ namespace boost { namespace xpressive { namespace detail
+ BOOST_ASSERT(Xpr::width == unknown_width() || Xpr::width == width);
+ }
+
++ simple_repeat_matcher(const simple_repeat_matcher& other) = default;
++
+ template<typename BidiIter, typename Next>
+ bool match(match_state<BidiIter> &state, Next const &next) const
+ {
+@@ -216,7 +218,7 @@ namespace boost { namespace xpressive { namespace detail
+ }
+
+ private:
+- simple_repeat_matcher &operator =(simple_repeat_matcher const &);
++ simple_repeat_matcher &operator =(simple_repeat_matcher const &) = delete;
+ };
+
+ // BUGBUG can all non-greedy quantification be done with the fixed width quantifier?
+--- a/include/boost/xpressive/detail/static/static.hpp (index)
++++ b/include/boost/xpressive/detail/static/static.hpp (working tree)
+@@ -128,6 +128,8 @@ struct static_xpression
+ {
+ }
+
++ static_xpression(static_xpression const &other) = default;
++
+ // match
+ // delegates to the Matcher
+ template<typename BidiIter>
+@@ -176,7 +178,7 @@ struct static_xpression
+
+ private:
+
+- static_xpression &operator =(static_xpression const &);
++ static_xpression &operator =(static_xpression const &) = delete;
+
+ template<typename Char>
+ void peek_next_(mpl::true_, xpression_peeker<Char> &peeker) const
diff --git a/contrib/restricted/boost/xpressive/patches/modernize-throw-specs.patch b/contrib/restricted/boost/xpressive/patches/modernize-throw-specs.patch
new file mode 100644
index 0000000000..779f6caab0
--- /dev/null
+++ b/contrib/restricted/boost/xpressive/patches/modernize-throw-specs.patch
@@ -0,0 +1,11 @@
+--- a/include/boost/xpressive/regex_error.hpp (index)
++++ b/include/boost/xpressive/regex_error.hpp (working tree)
+@@ -70,7 +70,7 @@ struct regex_error
+
+ /// Destructor for class regex_error
+ /// \throw nothrow
+- virtual ~regex_error() throw()
++ virtual ~regex_error()
+ {}
+
+ private: