summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobot-piglet <[email protected]>2025-03-12 15:23:05 +0300
committerrobot-piglet <[email protected]>2025-03-12 15:35:41 +0300
commite168b9c40d0c681bff53af1f3cfadf912278e4ab (patch)
treed9cb2acae14e20d0e009de931fa5e3a6a618afef
parent6be15d55eee03989c22613608f68419703afa891 (diff)
Intermediate changes
commit_hash:4a7b107595b27e8638b5cf772d691c8914fcb6ca
-rw-r--r--contrib/restricted/boost/algorithm/.yandex_meta/__init__.py20
-rw-r--r--contrib/restricted/boost/algorithm/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/align/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/align/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/any/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/any/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/array/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/array/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/asio/.yandex_meta/__init__.py31
-rw-r--r--contrib/restricted/boost/asio/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/asio/patches/apple-snprintf.patch11
-rw-r--r--contrib/restricted/boost/assert/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/assert/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/atomic/.yandex_meta/__init__.py57
-rw-r--r--contrib/restricted/boost/atomic/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/bimap/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/bimap/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/bind/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/bind/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/chrono/.yandex_meta/__init__.py21
-rw-r--r--contrib/restricted/boost/chrono/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/concept_check/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/concept_check/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/concept_check/patches/fix-clang-cl-build.patch25
-rw-r--r--contrib/restricted/boost/config/.yandex_meta/__init__.py29
-rw-r--r--contrib/restricted/boost/config/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/config/patches/disable-abi-compat.patch11
-rw-r--r--contrib/restricted/boost/config/patches/symbols-visibility.patch17
-rw-r--r--contrib/restricted/boost/container/.yandex_meta/__init__.py25
-rw-r--r--contrib/restricted/boost/container/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/container/patches/mobile.patch20
-rw-r--r--contrib/restricted/boost/container_hash/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/container_hash/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/context/.yandex_meta/__init__.py184
-rw-r--r--contrib/restricted/boost/context/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/context/patches/pr291-fix-tls-stack-protector.patch22
-rw-r--r--contrib/restricted/boost/conversion/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/conversion/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/core/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/core/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/core/patches/cxa-get-globals.patch14
-rw-r--r--contrib/restricted/boost/coroutine/.yandex_meta/__init__.py51
-rw-r--r--contrib/restricted/boost/coroutine/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/crc/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/crc/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/crc/patches/w-shift-count-overflow.patch11
-rw-r--r--contrib/restricted/boost/date_time/.yandex_meta/__init__.py26
-rw-r--r--contrib/restricted/boost/date_time/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/describe/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/describe/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/detail/.yandex_meta/__init__.py21
-rw-r--r--contrib/restricted/boost/detail/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/detail/patches/modernize-throw-specs.patch20
-rw-r--r--contrib/restricted/boost/dynamic_bitset/.yandex_meta/__init__.py20
-rw-r--r--contrib/restricted/boost/dynamic_bitset/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/endian/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/endian/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/exception/.yandex_meta/__init__.py18
-rw-r--r--contrib/restricted/boost/exception/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/filesystem/.yandex_meta/__init__.py39
-rw-r--r--contrib/restricted/boost/filesystem/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/foreach/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/foreach/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/format/.yandex_meta/__init__.py20
-rw-r--r--contrib/restricted/boost/format/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/function/.yandex_meta/__init__.py18
-rw-r--r--contrib/restricted/boost/function/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/function_types/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/function_types/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/functional/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/functional/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/fusion/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/fusion/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/graph/.yandex_meta/__init__.py32
-rw-r--r--contrib/restricted/boost/graph/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/graph/patches/deprecated-copy.patch11
-rw-r--r--contrib/restricted/boost/graph/patches/modernize-throw-specs.patch26
-rw-r--r--contrib/restricted/boost/graph/patches/w-unused-parameter.patch64
-rw-r--r--contrib/restricted/boost/icl/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/icl/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/integer/.yandex_meta/__init__.py17
-rw-r--r--contrib/restricted/boost/integer/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/interprocess/.yandex_meta/__init__.py22
-rw-r--r--contrib/restricted/boost/interprocess/.yandex_meta/default.nix13
-rw-r--r--contrib/restricted/boost/intrusive/.yandex_meta/__init__.py22
-rw-r--r--contrib/restricted/boost/intrusive/.yandex_meta/default.nix13
86 files changed, 1712 insertions, 0 deletions
diff --git a/contrib/restricted/boost/algorithm/.yandex_meta/__init__.py b/contrib/restricted/boost/algorithm/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..ac2ed2b8bc4
--- /dev/null
+++ b/contrib/restricted/boost/algorithm/.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_algorithm = NixSourceProject(
+ nixattr="boost_algorithm",
+ arcdir=boost.make_arcdir("algorithm"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ disable_includes=[
+ "slist",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/algorithm/.yandex_meta/default.nix b/contrib/restricted/boost/algorithm/.yandex_meta/default.nix
new file mode 100644
index 00000000000..86f74f56fd9
--- /dev/null
+++ b/contrib/restricted/boost/algorithm/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_algorithm = stdenv.mkDerivation rec {
+ pname = "boost_algorithm";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "algorithm";
+ rev = "boost-${version}";
+ hash = "sha256-+rnClgwIlt25oJ0MVzjaJn3N7eD3QXi0rf0v+cZDgvw=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/align/.yandex_meta/__init__.py b/contrib/restricted/boost/align/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..a2e550d41bc
--- /dev/null
+++ b/contrib/restricted/boost/align/.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_align = NixSourceProject(
+ nixattr="boost_align",
+ arcdir=boost.make_arcdir("align"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/align/.yandex_meta/default.nix b/contrib/restricted/boost/align/.yandex_meta/default.nix
new file mode 100644
index 00000000000..753c2e88b87
--- /dev/null
+++ b/contrib/restricted/boost/align/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_align = stdenv.mkDerivation rec {
+ pname = "boost_align";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "align";
+ rev = "boost-${version}";
+ hash = "sha256-pmYhhmJk69bAemvm2RNW9wSzUnaSMYNZz5QHZmRO7YY=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/any/.yandex_meta/__init__.py b/contrib/restricted/boost/any/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..b5a7c4d3a31
--- /dev/null
+++ b/contrib/restricted/boost/any/.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_any = NixSourceProject(
+ nixattr="boost_any",
+ arcdir=boost.make_arcdir("any"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/any/.yandex_meta/default.nix b/contrib/restricted/boost/any/.yandex_meta/default.nix
new file mode 100644
index 00000000000..5271f3b57cd
--- /dev/null
+++ b/contrib/restricted/boost/any/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_any = stdenv.mkDerivation rec {
+ pname = "boost_any";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "any";
+ rev = "boost-${version}";
+ hash = "sha256-ysJiQM+TB/VNdSmkwPXz/xLMG5uGIXNo9chxBSumlb4=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/array/.yandex_meta/__init__.py b/contrib/restricted/boost/array/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..125152c5ca0
--- /dev/null
+++ b/contrib/restricted/boost/array/.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_array = NixSourceProject(
+ nixattr="boost_array",
+ arcdir=boost.make_arcdir("array"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/array/.yandex_meta/default.nix b/contrib/restricted/boost/array/.yandex_meta/default.nix
new file mode 100644
index 00000000000..31d056ef971
--- /dev/null
+++ b/contrib/restricted/boost/array/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_array = stdenv.mkDerivation rec {
+ pname = "boost_array";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "array";
+ rev = "boost-${version}";
+ hash = "sha256-KlUpm9POv39C7BBpC2foHzTUCE9t2uEEka9kMdRVgcA=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/asio/.yandex_meta/__init__.py b/contrib/restricted/boost/asio/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..e92764bf23b
--- /dev/null
+++ b/contrib/restricted/boost/asio/.yandex_meta/__init__.py
@@ -0,0 +1,31 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(
+ self,
+ PEERDIR=[
+ "contrib/libs/openssl",
+ ],
+ )
+
+
+boost_asio = NixSourceProject(
+ nixattr="boost_asio",
+ arcdir=boost.make_arcdir("asio"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ disable_includes=[
+ "atomic.h",
+ "liburing.h",
+ "experimental/coroutine",
+ "experimental/source_location",
+ "experimental/string_view",
+ "BOOST_ASIO_CUSTOM_HANDLER_TRACKING",
+ "wolfssl/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/asio/.yandex_meta/default.nix b/contrib/restricted/boost/asio/.yandex_meta/default.nix
new file mode 100644
index 00000000000..1f04a444340
--- /dev/null
+++ b/contrib/restricted/boost/asio/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_asio = stdenv.mkDerivation rec {
+ pname = "boost_asio";
+ version = "1.85.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "asio";
+ rev = "boost-${version}";
+ hash = "sha256-vYYYna5TXBCAAO1NkoxaUidgErKbCNP06S8uHijzIDE=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/asio/patches/apple-snprintf.patch b/contrib/restricted/boost/asio/patches/apple-snprintf.patch
new file mode 100644
index 00000000000..90e8b5df885
--- /dev/null
+++ b/contrib/restricted/boost/asio/patches/apple-snprintf.patch
@@ -0,0 +1,11 @@
+--- contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp (index)
++++ contrib/restricted/boost/asio/include/boost/asio/detail/config.hpp (working tree)
+@@ -2216,7 +2216,7 @@
+ // Standard library support for snprintf.
+ #if !defined(BOOST_ASIO_HAS_SNPRINTF)
+ # if !defined(BOOST_ASIO_DISABLE_SNPRINTF)
+-# if defined(__apple_build_version__)
++# if defined(__APPLE__)
+ # if (__clang_major__ >= 14)
+ # define BOOST_ASIO_HAS_SNPRINTF 1
+ # endif // (__clang_major__ >= 14)
diff --git a/contrib/restricted/boost/assert/.yandex_meta/__init__.py b/contrib/restricted/boost/assert/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..41afd117a99
--- /dev/null
+++ b/contrib/restricted/boost/assert/.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_assert = NixSourceProject(
+ nixattr="boost_assert",
+ arcdir=boost.make_arcdir("assert"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/assert/.yandex_meta/default.nix b/contrib/restricted/boost/assert/.yandex_meta/default.nix
new file mode 100644
index 00000000000..e4514b5f46e
--- /dev/null
+++ b/contrib/restricted/boost/assert/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_assert = stdenv.mkDerivation rec {
+ pname = "boost_assert";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "assert";
+ rev = "boost-${version}";
+ hash = "sha256-gxA+/HvbCn2Eq5q+Jp8aX58N0f9TJdNPd4ZJfWKP3sI=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/atomic/.yandex_meta/__init__.py b/contrib/restricted/boost/atomic/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..cf9dd45597c
--- /dev/null
+++ b/contrib/restricted/boost/atomic/.yandex_meta/__init__.py
@@ -0,0 +1,57 @@
+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,
+ populate_srcs=True,
+ CFLAGS=["-DBOOST_ATOMIC_SOURCE"],
+ )
+ with self.yamakes["."] as atomic:
+ atomic.ADDINCL.append(f"{self.arcdir}/src")
+ atomic.after(
+ "CFLAGS",
+ Switch(
+ DYNAMIC_BOOST=Linkable(CFLAGS=[GLOBAL("-DBOOST_ATOMIC_DYN_LINK")]),
+ ),
+ )
+
+ # wait_on_address is a windows-specific source
+ atomic.SRCS.remove("src/wait_on_address.cpp")
+ atomic.after(
+ "PEERDIR",
+ Switch(
+ OS_WINDOWS=Linkable(
+ SRCS=["src/wait_on_address.cpp"],
+ ),
+ ),
+ )
+
+ atomic.SRCS.remove("src/find_address_sse41.cpp")
+ atomic.after(
+ "SRCS",
+ Switch(
+ USE_SSE4=Linkable(
+ CFLAGS=["-DBOOST_ATOMIC_USE_SSE41"],
+ SRCS=["src/find_address_sse41.cpp"],
+ ),
+ ),
+ )
+
+
+boost_atomic = NixSourceProject(
+ nixattr="boost_atomic",
+ arcdir=boost.make_arcdir("atomic"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ "src/",
+ ],
+ disable_includes=[
+ # sys/futex.h is bsd-specific header for futex API
+ "sys/futex.h",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/atomic/.yandex_meta/default.nix b/contrib/restricted/boost/atomic/.yandex_meta/default.nix
new file mode 100644
index 00000000000..801b61e0448
--- /dev/null
+++ b/contrib/restricted/boost/atomic/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_atomic = stdenv.mkDerivation rec {
+ pname = "boost_atomic";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "atomic";
+ rev = "boost-${version}";
+ hash = "sha256-YD1f1dzQ05+av0PG1btTBOGhnH520WpE8pongfYo1ow=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/bimap/.yandex_meta/__init__.py b/contrib/restricted/boost/bimap/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..16807dc02d3
--- /dev/null
+++ b/contrib/restricted/boost/bimap/.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_bimap = NixSourceProject(
+ nixattr="boost_bimap",
+ arcdir=boost.make_arcdir("bimap"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/bimap/.yandex_meta/default.nix b/contrib/restricted/boost/bimap/.yandex_meta/default.nix
new file mode 100644
index 00000000000..29459e38785
--- /dev/null
+++ b/contrib/restricted/boost/bimap/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_bimap = stdenv.mkDerivation rec {
+ pname = "boost_bimap";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "bimap";
+ rev = "boost-${version}";
+ hash = "sha256-gyWR4Ix7omtWG+DW2LICGplPvqTvwPAsI7toflUWlSA=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/bind/.yandex_meta/__init__.py b/contrib/restricted/boost/bind/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..c49daaae94e
--- /dev/null
+++ b/contrib/restricted/boost/bind/.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_bind = NixSourceProject(
+ nixattr="boost_bind",
+ arcdir=boost.make_arcdir("bind"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/bind/.yandex_meta/default.nix b/contrib/restricted/boost/bind/.yandex_meta/default.nix
new file mode 100644
index 00000000000..73152bb3163
--- /dev/null
+++ b/contrib/restricted/boost/bind/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_bind = stdenv.mkDerivation rec {
+ pname = "boost_bind";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "bind";
+ rev = "boost-${version}";
+ hash = "sha256-Eu/inCn4rlpkHd6LFu/N9CtzxwM4IoLms2RPvJgF11Q=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/chrono/.yandex_meta/__init__.py b/contrib/restricted/boost/chrono/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..c2638bb0c64
--- /dev/null
+++ b/contrib/restricted/boost/chrono/.yandex_meta/__init__.py
@@ -0,0 +1,21 @@
+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, populate_srcs=True)
+ with self.yamakes["."] as chrono:
+ chrono.after("CFLAGS", Switch({"DYNAMIC_BOOST": Linkable(CFLAGS=[GLOBAL("-DBOOST_CHRONO_DYN_LINK")])}))
+
+
+boost_chrono = NixSourceProject(
+ nixattr="boost_chrono",
+ arcdir=boost.make_arcdir("chrono"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ "src/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/chrono/.yandex_meta/default.nix b/contrib/restricted/boost/chrono/.yandex_meta/default.nix
new file mode 100644
index 00000000000..6ad0daee7a9
--- /dev/null
+++ b/contrib/restricted/boost/chrono/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_chrono = stdenv.mkDerivation rec {
+ pname = "boost_chrono";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "chrono";
+ rev = "boost-${version}";
+ hash = "sha256-pwuPMr+mo5u8xHJgV8+tysVO5NFMJwzsktULyR8cdo0=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/concept_check/.yandex_meta/__init__.py b/contrib/restricted/boost/concept_check/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..e813b63341c
--- /dev/null
+++ b/contrib/restricted/boost/concept_check/.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_concept_check = NixSourceProject(
+ nixattr="boost_concept_check",
+ arcdir=boost.make_arcdir("concept_check"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/concept_check/.yandex_meta/default.nix b/contrib/restricted/boost/concept_check/.yandex_meta/default.nix
new file mode 100644
index 00000000000..83708bd8838
--- /dev/null
+++ b/contrib/restricted/boost/concept_check/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_concept_check = stdenv.mkDerivation rec {
+ pname = "boost_concept_check";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "concept_check";
+ rev = "boost-${version}";
+ hash = "sha256-W/LAEqMIFXsPBgDJ3ENcsaFAiRODRKrPXrGIMwLbvO4=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/concept_check/patches/fix-clang-cl-build.patch b/contrib/restricted/boost/concept_check/patches/fix-clang-cl-build.patch
new file mode 100644
index 00000000000..c42f6bada36
--- /dev/null
+++ b/contrib/restricted/boost/concept_check/patches/fix-clang-cl-build.patch
@@ -0,0 +1,25 @@
+--- a/include/boost/concept/detail/msvc.hpp (index)
++++ b/include/boost/concept/detail/msvc.hpp (working tree)
+@@ -18,6 +18,11 @@
+ # pragma warning(disable:4100)
+ # endif
+
++# if defined(__clang__)
++# pragma clang diagnostic push
++# pragma clang diagnostic ignored "-Wnon-virtual-dtor"
++# endif
++
+ namespace boost { namespace concepts {
+
+
+@@ -116,6 +121,10 @@ enum \
+ # endif
+ }}
+
++# if defined(__clang__)
++# pragma clang diagnostic pop
++# endif
++
+ # ifdef BOOST_MSVC
+ # pragma warning(pop)
+ # endif
diff --git a/contrib/restricted/boost/config/.yandex_meta/__init__.py b/contrib/restricted/boost/config/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..49480e5b6a3
--- /dev/null
+++ b/contrib/restricted/boost/config/.yandex_meta/__init__.py
@@ -0,0 +1,29 @@
+from devtools.yamaker import boost
+from devtools.yamaker.modules import GLOBAL
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(
+ self,
+ CFLAGS=[
+ GLOBAL("-DBOOST_ALL_NO_LIB"),
+ ],
+ )
+
+
+boost_config = NixSourceProject(
+ nixattr="boost_config",
+ arcdir=boost.make_arcdir("config"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/**/*.hpp",
+ ],
+ copy_sources_except=[
+ "boost/config/platform/vxworks.hpp",
+ ],
+ disable_includes=[
+ "boost/config/platform/vxworks.hpp",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/config/.yandex_meta/default.nix b/contrib/restricted/boost/config/.yandex_meta/default.nix
new file mode 100644
index 00000000000..59934b6e5d3
--- /dev/null
+++ b/contrib/restricted/boost/config/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_config = stdenv.mkDerivation rec {
+ pname = "boost_config";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "config";
+ rev = "boost-${version}";
+ hash = "sha256-BpML8PxUuRVPfdQ7bf60GHPM44TXtg2nfWmCodzfO4Q=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/config/patches/disable-abi-compat.patch b/contrib/restricted/boost/config/patches/disable-abi-compat.patch
new file mode 100644
index 00000000000..0ad0f0cb693
--- /dev/null
+++ b/contrib/restricted/boost/config/patches/disable-abi-compat.patch
@@ -0,0 +1,11 @@
+--- a/include/boost/config/user.hpp (index)
++++ b/include/boost/config/user.hpp (working tree)
+@@ -68,7 +68,7 @@
+ // BOOST_DISABLE_ABI_HEADERS: Stops boost headers from including any
+ // prefix/suffix headers that normally control things like struct
+ // packing and alignment.
+-// #define BOOST_DISABLE_ABI_HEADERS
++#define BOOST_DISABLE_ABI_HEADERS
+
+ // BOOST_ABI_PREFIX: A prefix header to include in place of whatever
+ // boost.config would normally select, any replacement should set up
diff --git a/contrib/restricted/boost/config/patches/symbols-visibility.patch b/contrib/restricted/boost/config/patches/symbols-visibility.patch
new file mode 100644
index 00000000000..e717d74e1b2
--- /dev/null
+++ b/contrib/restricted/boost/config/patches/symbols-visibility.patch
@@ -0,0 +1,17 @@
+--- a/include/boost/config/compiler/clang.hpp (index)
++++ b/include/boost/config/compiler/clang.hpp (working tree)
+@@ -103,1 +103,3 @@
+-# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
++# ifndef BOOST_SYMBOL_EXPORT
++# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
++# endif
+@@ -103,1 +103,3 @@
+-# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
++# ifndef BOOST_SYMBOL_VISIBLE
++# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
++# endif
+@@ -103,1 +103,3 @@
+-# define BOOST_SYMBOL_IMPORT
++# ifndef BOOST_SYMBOL_IMPORT
++# define BOOST_SYMBOL_IMPORT
++# endif
diff --git a/contrib/restricted/boost/container/.yandex_meta/__init__.py b/contrib/restricted/boost/container/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..2f065542795
--- /dev/null
+++ b/contrib/restricted/boost/container/.yandex_meta/__init__.py
@@ -0,0 +1,25 @@
+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, populate_srcs=True)
+ with self.yamakes["."] as container:
+ # remove dlmalloc sources, they are used via #include
+ container.SRCS = [src for src in container.SRCS if not src.endswith("2_8_6.c")]
+
+ container.after("CFLAGS", Switch({"DYNAMIC_BOOST": Linkable(CFLAGS=[GLOBAL("-DBOOST_CONTAINER_DYN_LINK")])}))
+
+
+boost_container = NixSourceProject(
+ nixattr="boost_container",
+ arcdir=boost.make_arcdir("container"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ "src/",
+ ],
+ disable_includes=["/usr/include/malloc.h"],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/container/.yandex_meta/default.nix b/contrib/restricted/boost/container/.yandex_meta/default.nix
new file mode 100644
index 00000000000..2e78457a22e
--- /dev/null
+++ b/contrib/restricted/boost/container/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_container = stdenv.mkDerivation rec {
+ pname = "boost_container";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "container";
+ rev = "boost-${version}";
+ hash = "sha256-8kSlNjczI6GjwDdYnnrc7au2DTpw7HmVxhK64TJb/eM=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/container/patches/mobile.patch b/contrib/restricted/boost/container/patches/mobile.patch
new file mode 100644
index 00000000000..0e95f0cafdd
--- /dev/null
+++ b/contrib/restricted/boost/container/patches/mobile.patch
@@ -0,0 +1,20 @@
+--- a/include/boost/container/pmr/polymorphic_allocator.hpp (index)
++++ b/include/boost/container/pmr/polymorphic_allocator.hpp (working tree)
+@@ -39,6 +39,17 @@ class polymorphic_allocator
+ {
+ public:
+ typedef T value_type;
++ typedef value_type* pointer;
++ typedef const value_type* const_pointer;
++ typedef value_type& reference;
++ typedef const value_type& const_reference;
++ typedef std::size_t size_type;
++ typedef std::ptrdiff_t difference_type;
++
++ template <typename U>
++ struct rebind {
++ typedef ::boost::container::pmr::polymorphic_allocator<U> other;
++ };
+
+ //! <b>Effects</b>: Sets m_resource to
+ //! `get_default_resource()`.
diff --git a/contrib/restricted/boost/container_hash/.yandex_meta/__init__.py b/contrib/restricted/boost/container_hash/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..e28aa348448
--- /dev/null
+++ b/contrib/restricted/boost/container_hash/.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_container_hash = NixSourceProject(
+ nixattr="boost_container_hash",
+ arcdir=boost.make_arcdir("container_hash"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/container_hash/.yandex_meta/default.nix b/contrib/restricted/boost/container_hash/.yandex_meta/default.nix
new file mode 100644
index 00000000000..46ed9a42e3d
--- /dev/null
+++ b/contrib/restricted/boost/container_hash/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_container_hash = stdenv.mkDerivation rec {
+ pname = "boost_container_hash";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "container_hash";
+ rev = "boost-${version}";
+ hash = "sha256-jfRtfQ7/IEgH3ZQv0qNu+ZYX8RFttwARb8G/jjKS6us=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/context/.yandex_meta/__init__.py b/contrib/restricted/boost/context/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..58be719a928
--- /dev/null
+++ b/contrib/restricted/boost/context/.yandex_meta/__init__.py
@@ -0,0 +1,184 @@
+import os.path
+import itertools
+
+from devtools.yamaker import boost, fileutil
+from devtools.yamaker.modules import GLOBAL, Library, Linkable, Switch
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ # give masm sources the extension expected by ymake
+ for p in fileutil.listdir(os.path.join(self.dstdir, "src", "asm")):
+ # match both masm and armasm
+ if p.endswith("masm.asm"):
+ fname = os.path.basename(p)
+ fname_wo_ext, _ = os.path.splitext(fname)
+ fileutil.rename(p, fname_wo_ext + ".masm")
+
+ self.yamakes["."] = self.module(
+ Library,
+ # duplicated for visibility
+ ADDINCL=[GLOBAL(os.path.join(self.arcdir, "include"))],
+ RECURSE=["impl_common", "fcontext_impl", "ucontext_impl"],
+ )
+ with self.yamakes["."] as context:
+ context.after(
+ "PEERDIR",
+ Switch(
+ {
+ "SANITIZER_TYPE": Linkable(PEERDIR=[os.path.join(self.arcdir, "ucontext_impl")]),
+ "default": Linkable(PEERDIR=[os.path.join(self.arcdir, "fcontext_impl")]),
+ }
+ ),
+ )
+
+ self.yamakes["impl_common"] = boost.make_library(
+ self,
+ LICENSE=["BSL-1.0"],
+ SRCDIR=[os.path.join(self.arcdir, "src")],
+ CFLAGS=["-DBOOST_CONTEXT_SOURCE"],
+ )
+ with self.yamakes["impl_common"] as impl_common:
+ impl_common.after("CFLAGS", Switch({"DYNAMIC_BOOST": Linkable(CFLAGS=[GLOBAL("-DBOOST_CONTEXT_DYN_LINK")])}))
+ impl_common.after(
+ "SRCS",
+ Switch(
+ {
+ "OS_WINDOWS": Linkable(SRCS=["windows/stack_traits.cpp"]),
+ "default": Linkable(SRCS=["posix/stack_traits.cpp"]),
+ }
+ ),
+ )
+
+ self.yamakes["ucontext_impl"] = self.module(
+ Library,
+ LICENSE=["BSL-1.0"],
+ # PROVIDES=["boost_context_impl"], -- introduce after breaking asio dependency on fcontext
+ PEERDIR=[os.path.join(self.arcdir, "impl_common")],
+ ADDINCL=[os.path.join(self.arcdir, "include")],
+ SRCDIR=[os.path.join(self.arcdir, "src")],
+ CFLAGS=[GLOBAL("-DBOOST_USE_UCONTEXT"), "-DBOOST_CONTEXT_SOURCE"],
+ SRCS=["continuation.cpp", "fiber.cpp"],
+ NO_UTIL=True,
+ NO_COMPILER_WARNINGS=True,
+ )
+ with self.yamakes["ucontext_impl"] as ucontext_impl:
+ ucontext_impl.after(
+ "CFLAGS",
+ Switch(
+ {
+ 'SANITIZER_TYPE == "address"': Linkable(CFLAGS=[GLOBAL("-DBOOST_USE_ASAN")]),
+ 'SANITIZER_TYPE == "thread"': Linkable(CFLAGS=[GLOBAL("-DBOOST_USE_TSAN")]),
+ }
+ ),
+ )
+ ucontext_impl.PEERDIR.add("library/cpp/sanitizer/include")
+
+ self.yamakes["fcontext_impl"] = self.module(
+ Library,
+ LICENSE=["BSL-1.0"],
+ PEERDIR=[os.path.join(self.arcdir, "impl_common")],
+ SRCDIR=[self.arcdir],
+ NO_UTIL=True,
+ NO_COMPILER_WARNINGS=True,
+ )
+
+ with self.yamakes["fcontext_impl"] as fcontext_impl:
+ fcontext_impl.after(
+ "CFLAGS",
+ Switch(
+ {
+ "OS_WINDOWS": Switch(
+ {
+ "DYNAMIC_BOOST": Linkable(MASMFLAGS=["/DBOOST_CONTEXT_EXPORT=EXPORT"]),
+ "default": Linkable(MASMFLAGS=["/DBOOST_CONTEXT_EXPORT="]),
+ }
+ )
+ }
+ ),
+ )
+ fcontext_impl.after(
+ "SRCDIR",
+ """
+ IF (OS_WINDOWS AND ARCH_I386)
+ MASMFLAGS(/safeseh)
+ ENDIF()
+
+ IF (ARCH_I386)
+ SET(FCONTEXT_ARCH "i386")
+ ELSEIF (ARCH_X86_64)
+ SET(FCONTEXT_ARCH "x86_64")
+ ELSEIF (ARCH_ARM64)
+ SET(FCONTEXT_ARCH "arm64")
+ ELSEIF (ARCH_ARM)
+ SET(FCONTEXT_ARCH "arm")
+ ENDIF()
+
+ IF (OS_WINDOWS)
+ SET(FCONTEXT_ABI ms)
+ ELSEIF (ARCH_ARM64 OR ARCH_ARM)
+ SET(FCONTEXT_ABI aapcs)
+ ELSE (OS_LINUX OR OS_ANDROID)
+ SET(FCONTEXT_ABI sysv)
+ ENDIF()
+
+ IF (OS_DARWIN OR OS_IOS)
+ SET(FCONTEXT_FMT macho)
+ SET(FCONTEXT_SUF gas.S)
+ ELSEIF (OS_LINUX OR OS_ANDROID)
+ SET(FCONTEXT_FMT elf)
+ SET(FCONTEXT_SUF gas.S)
+ ELSEIF (OS_WINDOWS AND ARCH_ARM64)
+ SET(FCONTEXT_FMT pe)
+ SET(FCONTEXT_SUF asmasm.masm)
+ ELSEIF (OS_WINDOWS)
+ SET(FCONTEXT_FMT pe)
+ SET(FCONTEXT_SUF masm.masm)
+ ENDIF()
+ """,
+ )
+ fcontext_impl.after(
+ "SRCDIR",
+ """
+ SRCS(
+ src/asm/make_${FCONTEXT_ARCH}_${FCONTEXT_ABI}_${FCONTEXT_FMT}_${FCONTEXT_SUF}
+ src/asm/jump_${FCONTEXT_ARCH}_${FCONTEXT_ABI}_${FCONTEXT_FMT}_${FCONTEXT_SUF}
+ src/asm/ontop_${FCONTEXT_ARCH}_${FCONTEXT_ABI}_${FCONTEXT_FMT}_${FCONTEXT_SUF}
+ src/fcontext.cpp
+ )
+ """,
+ )
+
+
+FMT_ASM = [
+ f"{fmt}_{asm}"
+ for fmt, asm in zip(
+ ("elf", "macho", "pe", "pe"),
+ # Windows on arm64 requires custom assember armasm, handle it
+ ("gas.S", "gas.S", "masm.asm", "armasm.asm"),
+ )
+]
+
+
+boost_context = NixSourceProject(
+ nixattr="boost_context",
+ arcdir=boost.make_arcdir("context"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ # fmt: off
+ copy_sources=[
+ "include/boost/",
+ "src/*.cpp",
+ "src/posix/stack_traits.cpp",
+ "src/windows/stack_traits.cpp",
+ ] + [
+ f"src/asm/{cmd}_{arch}_{abi}_{fmt_asm}"
+ for cmd, arch, abi, fmt_asm in itertools.product(
+ ["jump", "make", "ontop"],
+ ["arm", "arm64", "i386", "x86_64"],
+ ["aapcs", "ms", "sysv"],
+ FMT_ASM,
+ )
+ ],
+ # fmt: on
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/context/.yandex_meta/default.nix b/contrib/restricted/boost/context/.yandex_meta/default.nix
new file mode 100644
index 00000000000..9a916b172fb
--- /dev/null
+++ b/contrib/restricted/boost/context/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_context = stdenv.mkDerivation rec {
+ pname = "boost_context";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "context";
+ rev = "boost-${version}";
+ hash = "sha256-MFJgat3HX5IRW4xaXzjAdbo77e103mt3HnNgG8PV+pw=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/context/patches/pr291-fix-tls-stack-protector.patch b/contrib/restricted/boost/context/patches/pr291-fix-tls-stack-protector.patch
new file mode 100644
index 00000000000..a94ff1f6493
--- /dev/null
+++ b/contrib/restricted/boost/context/patches/pr291-fix-tls-stack-protector.patch
@@ -0,0 +1,22 @@
+From 7f5f436c0ffaf8d481676efb77fbf8013e55848c Mon Sep 17 00:00:00 2001
+From: CBBBrother <[email protected]>
+Date: Mon, 17 Feb 2025 15:00:57 +0300
+Subject: [PATCH] fix tls staack protector on x86_64
+
+---
+ src/asm/make_x86_64_sysv_elf_gas.S | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/asm/make_x86_64_sysv_elf_gas.S b/src/asm/make_x86_64_sysv_elf_gas.S
+index 7561c089..9336210a 100644
+--- a/src/asm/make_x86_64_sysv_elf_gas.S
++++ b/src/asm/make_x86_64_sysv_elf_gas.S
+@@ -77,7 +77,7 @@ make_fcontext:
+ #if defined(BOOST_CONTEXT_TLS_STACK_PROTECTOR)
+ /* save stack guard */
+ movq %fs:0x28, %rcx /* read stack guard from TLS record */
+- movq %rcx, 0x8(%rsp) /* save stack guard */
++ movq %rcx, 0x8(%rax) /* save stack guard */
+ #endif
+
+ /* compute abs address of label trampoline */
diff --git a/contrib/restricted/boost/conversion/.yandex_meta/__init__.py b/contrib/restricted/boost/conversion/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..e776cdeeb30
--- /dev/null
+++ b/contrib/restricted/boost/conversion/.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_conversion = NixSourceProject(
+ nixattr="boost_conversion",
+ arcdir=boost.make_arcdir("conversion"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/conversion/.yandex_meta/default.nix b/contrib/restricted/boost/conversion/.yandex_meta/default.nix
new file mode 100644
index 00000000000..7f273c5f0f7
--- /dev/null
+++ b/contrib/restricted/boost/conversion/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_conversion = stdenv.mkDerivation rec {
+ pname = "boost_conversion";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "conversion";
+ rev = "boost-${version}";
+ hash = "sha256-STQcRLg4FPxQ3MxMPx2IsqVV0PoyAPgGHfv+EeluyXs=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/core/.yandex_meta/__init__.py b/contrib/restricted/boost/core/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..92695c18fc9
--- /dev/null
+++ b/contrib/restricted/boost/core/.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_core = NixSourceProject(
+ nixattr="boost_core",
+ arcdir=boost.make_arcdir("core"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/core/.yandex_meta/default.nix b/contrib/restricted/boost/core/.yandex_meta/default.nix
new file mode 100644
index 00000000000..9c89c67b67d
--- /dev/null
+++ b/contrib/restricted/boost/core/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_core = stdenv.mkDerivation rec {
+ pname = "boost_core";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "core";
+ rev = "boost-${version}";
+ hash = "sha256-jfMBu2K9peGzT/rtvrBXHdN5z17GiwQjUQ0cO6OWU18=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/core/patches/cxa-get-globals.patch b/contrib/restricted/boost/core/patches/cxa-get-globals.patch
new file mode 100644
index 00000000000..1af927a5a32
--- /dev/null
+++ b/contrib/restricted/boost/core/patches/cxa-get-globals.patch
@@ -0,0 +1,14 @@
+--- contrib/restricted/boost/core/include/boost/core/uncaught_exceptions.hpp (index)
++++ contrib/restricted/boost/core/include/boost/core/uncaught_exceptions.hpp (working tree)
+@@ -88,11 +88,6 @@
+ )
+ namespace __cxxabiv1 {
+ struct __cxa_eh_globals;
+-#if defined(__OpenBSD__)
+-extern "C" __cxa_eh_globals* __cxa_get_globals();
+-#else
+-extern "C" __cxa_eh_globals* __cxa_get_globals() BOOST_NOEXCEPT_OR_NOTHROW __attribute__((__const__));
+-#endif
+ } // namespace __cxxabiv1
+ #endif
+ #endif
diff --git a/contrib/restricted/boost/coroutine/.yandex_meta/__init__.py b/contrib/restricted/boost/coroutine/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..6720d53fd1f
--- /dev/null
+++ b/contrib/restricted/boost/coroutine/.yandex_meta/__init__.py
@@ -0,0 +1,51 @@
+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,
+ CFLAGS=[GLOBAL("-DBOOST_COROUTINES_NO_DEPRECATION_WARNING"), "-DBOOST_COROUTINES_SOURCE"],
+ SRCS=fileutil.files(
+ self.dstdir, rel=True, test=lambda p: pathutil.is_source(p) and "windows" not in p and "posix" not in p
+ ),
+ )
+ with self.yamakes["."] as coroutine:
+ # uses fcontext directly (also this lib is deprecated)
+ boost_context_arcdir = boost.make_arcdir("context")
+ coroutine.PEERDIR.remove(boost_context_arcdir)
+ coroutine.PEERDIR.add(f"{boost_context_arcdir}/fcontext_impl")
+
+ coroutine.after("CFLAGS", Switch({"DYNAMIC_BOOST": Linkable(CFLAGS=[GLOBAL("-DBOOST_COROUTINES_DYN_LINK")])}))
+ coroutine.after(
+ "CFLAGS",
+ Switch(
+ {
+ "OS_WINDOWS": Linkable(
+ SRCS=fileutil.files(
+ os.path.join(self.dstdir, "src", "windows"), rel=self.dstdir, test=pathutil.is_source
+ ),
+ ),
+ "default": Linkable(
+ SRCS=fileutil.files(
+ os.path.join(self.dstdir, "src", "posix"), rel=self.dstdir, test=pathutil.is_source
+ ),
+ ),
+ }
+ ),
+ )
+
+
+boost_coroutine = NixSourceProject(
+ nixattr="boost_coroutine",
+ arcdir=boost.make_arcdir("coroutine"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ "src/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/coroutine/.yandex_meta/default.nix b/contrib/restricted/boost/coroutine/.yandex_meta/default.nix
new file mode 100644
index 00000000000..8e634e8cdbe
--- /dev/null
+++ b/contrib/restricted/boost/coroutine/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_coroutine = stdenv.mkDerivation rec {
+ pname = "boost_coroutine";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "coroutine";
+ rev = "boost-${version}";
+ hash = "sha256-wPHezql6B5Ewe2KVQsVHXf0cBsVVp6Xre20KoUjbN14=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/crc/.yandex_meta/__init__.py b/contrib/restricted/boost/crc/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..c6db71b085b
--- /dev/null
+++ b/contrib/restricted/boost/crc/.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_crc = NixSourceProject(
+ nixattr="boost_crc",
+ arcdir=boost.make_arcdir("crc"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/crc/.yandex_meta/default.nix b/contrib/restricted/boost/crc/.yandex_meta/default.nix
new file mode 100644
index 00000000000..bb0de9726c3
--- /dev/null
+++ b/contrib/restricted/boost/crc/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_crc = stdenv.mkDerivation rec {
+ pname = "boost_crc";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "crc";
+ rev = "boost-${version}";
+ hash = "sha256-zPCiNBmDIcn2Aa0sYmUwXg9AB3kajuZLZuUVrolIxT4=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/crc/patches/w-shift-count-overflow.patch b/contrib/restricted/boost/crc/patches/w-shift-count-overflow.patch
new file mode 100644
index 00000000000..033a31455e0
--- /dev/null
+++ b/contrib/restricted/boost/crc/patches/w-shift-count-overflow.patch
@@ -0,0 +1,11 @@
+--- contrib/restricted/boost/crc/include/boost/crc.hpp (index)
++++ contrib/restricted/boost/crc/include/boost/crc.hpp (working tree)
+@@ -1188,7 +1188,7 @@ namespace detail
+ )) & UCHAR_MAX ) ^ *new_dividend_bytes++;
+
+ // Complete the multi-bit altered modulo-2 polynomial division
+- remainder <<= CHAR_BIT;
++ remainder = (remainder << CHAR_BIT);
+ remainder ^= table[ index ];
+ }
+
diff --git a/contrib/restricted/boost/date_time/.yandex_meta/__init__.py b/contrib/restricted/boost/date_time/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..fa8899bef14
--- /dev/null
+++ b/contrib/restricted/boost/date_time/.yandex_meta/__init__.py
@@ -0,0 +1,26 @@
+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 iostreams:
+ iostreams.after("CFLAGS", Switch({"DYNAMIC_BOOST": Linkable(CFLAGS=[GLOBAL("-DBOOST_DATE_TIME_DYN_LINK")])}))
+
+
+boost_date_time = NixSourceProject(
+ nixattr="boost_date_time",
+ arcdir=boost.make_arcdir("date_time"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ copy_sources_except=[
+ # doxygen helpers
+ "gregorian/gregorian_types.cpp",
+ "posix_time/posix_time_types.cpp",
+ "date_time.doc",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/date_time/.yandex_meta/default.nix b/contrib/restricted/boost/date_time/.yandex_meta/default.nix
new file mode 100644
index 00000000000..88b8b8b297f
--- /dev/null
+++ b/contrib/restricted/boost/date_time/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_date_time = stdenv.mkDerivation rec {
+ pname = "boost_date_time";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "date_time";
+ rev = "boost-${version}";
+ hash = "sha256-I1Oo/3MyHnsBSEjQ7OieCVn3B0ImSYDaPqoMMW0kPjg=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/describe/.yandex_meta/__init__.py b/contrib/restricted/boost/describe/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..3ec8a3dbd22
--- /dev/null
+++ b/contrib/restricted/boost/describe/.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_container_hash = NixSourceProject(
+ nixattr="boost_describe",
+ arcdir=boost.make_arcdir("describe"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/describe/.yandex_meta/default.nix b/contrib/restricted/boost/describe/.yandex_meta/default.nix
new file mode 100644
index 00000000000..f8d24e2ccb7
--- /dev/null
+++ b/contrib/restricted/boost/describe/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_describe = stdenv.mkDerivation rec {
+ pname = "boost_describe";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "describe";
+ rev = "boost-${version}";
+ hash = "sha256-20NRrM3S0JU8NFd4923iFvlOR/lC2nrWNMZqTEvyP+0=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/detail/.yandex_meta/__init__.py b/contrib/restricted/boost/detail/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..61439a78913
--- /dev/null
+++ b/contrib/restricted/boost/detail/.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_detail = NixSourceProject(
+ nixattr="boost_detail",
+ arcdir=boost.make_arcdir("detail"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ disable_includes=[
+ # if defined(__MINGW32__)
+ "../include/fenv.h",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/detail/.yandex_meta/default.nix b/contrib/restricted/boost/detail/.yandex_meta/default.nix
new file mode 100644
index 00000000000..e0d27c651cb
--- /dev/null
+++ b/contrib/restricted/boost/detail/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_detail = stdenv.mkDerivation rec {
+ pname = "boost_detail";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "detail";
+ rev = "boost-${version}";
+ hash = "sha256-BORKOSwA7WhzEEK2Y7IF8tSgVbAIRj7mAJ020P4T75E=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/detail/patches/modernize-throw-specs.patch b/contrib/restricted/boost/detail/patches/modernize-throw-specs.patch
new file mode 100644
index 00000000000..d9c88cf5c32
--- /dev/null
+++ b/contrib/restricted/boost/detail/patches/modernize-throw-specs.patch
@@ -0,0 +1,20 @@
+--- a/include/boost/detail/utf8_codecvt_facet.hpp (index)
++++ b/include/boost/detail/utf8_codecvt_facet.hpp (working tree)
+@@ -185,7 +185,7 @@ protected:
+ std::size_t max_limit
+ ) const
+ #if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
+- throw()
++ noexcept
+ #endif
+ ;
+
+@@ -197,7 +197,7 @@ protected:
+ std::size_t max_limit
+ ) const
+ #if BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(600))
+- throw()
++ noexcept
+ #endif
+ {
+ return do_length(
diff --git a/contrib/restricted/boost/dynamic_bitset/.yandex_meta/__init__.py b/contrib/restricted/boost/dynamic_bitset/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..332a0c0dab4
--- /dev/null
+++ b/contrib/restricted/boost/dynamic_bitset/.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_dynamic_bitset = NixSourceProject(
+ nixattr="boost_dynamic_bitset",
+ arcdir=boost.make_arcdir("dynamic_bitset"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ disable_includes=[
+ "iostream.h",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/dynamic_bitset/.yandex_meta/default.nix b/contrib/restricted/boost/dynamic_bitset/.yandex_meta/default.nix
new file mode 100644
index 00000000000..eb05c997582
--- /dev/null
+++ b/contrib/restricted/boost/dynamic_bitset/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_dynamic_bitset = stdenv.mkDerivation rec {
+ pname = "boost_dynamic_bitset";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "dynamic_bitset";
+ rev = "boost-${version}";
+ hash = "sha256-zTjTwvRgETHTST9vVqpy5yIcZ+QT+eyuPY4AmNprnpM=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/endian/.yandex_meta/__init__.py b/contrib/restricted/boost/endian/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..5c28d4e7c27
--- /dev/null
+++ b/contrib/restricted/boost/endian/.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_endian = NixSourceProject(
+ nixattr="boost_endian",
+ arcdir=boost.make_arcdir("endian"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/endian/.yandex_meta/default.nix b/contrib/restricted/boost/endian/.yandex_meta/default.nix
new file mode 100644
index 00000000000..9ba90acafc6
--- /dev/null
+++ b/contrib/restricted/boost/endian/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_endian = stdenv.mkDerivation rec {
+ pname = "boost_endian";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "endian";
+ rev = "boost-${version}";
+ hash = "sha256-VvRTa92Ca9wdx0cArbKr2xlnbi2UQLUSRuiwVLA5kyA=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/exception/.yandex_meta/__init__.py b/contrib/restricted/boost/exception/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..82411413548
--- /dev/null
+++ b/contrib/restricted/boost/exception/.yandex_meta/__init__.py
@@ -0,0 +1,18 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self, populate_srcs=True)
+
+
+boost_exception = NixSourceProject(
+ nixattr="boost_exception",
+ arcdir=boost.make_arcdir("exception"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ "src/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/exception/.yandex_meta/default.nix b/contrib/restricted/boost/exception/.yandex_meta/default.nix
new file mode 100644
index 00000000000..9e5187034ba
--- /dev/null
+++ b/contrib/restricted/boost/exception/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_exception = stdenv.mkDerivation rec {
+ pname = "boost_exception";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "exception";
+ rev = "boost-${version}";
+ hash = "sha256-2ySIcMOeWlE7y8hIXdJfxgAqJiSIO+QXyzqN0u8IvC4=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/filesystem/.yandex_meta/__init__.py b/contrib/restricted/boost/filesystem/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..119145ca843
--- /dev/null
+++ b/contrib/restricted/boost/filesystem/.yandex_meta/__init__.py
@@ -0,0 +1,39 @@
+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,
+ populate_srcs=True,
+ CFLAGS=[
+ # Our libc++ does not have std::atomic_ref yet
+ "-DBOOST_FILESYSTEM_NO_CXX20_ATOMIC_REF",
+ ],
+ )
+ with self.yamakes["."] as filesystem:
+ filesystem.after(
+ "CFLAGS",
+ Switch(
+ OS_LINUX=Linkable(CFLAGS=[GLOBAL("-DBOOST_FILESYSTEM_HAS_POSIX_AT_APIS")]),
+ ),
+ )
+ filesystem.after(
+ "CFLAGS",
+ Switch(
+ DYNAMIC_BOOST=Linkable(CFLAGS=[GLOBAL("-DBOOST_FILESYSTEM_DYN_LINK"), "-DBOOST_FILESYSTEM_SOURCE"]),
+ ),
+ )
+
+
+boost_filesystem = NixSourceProject(
+ nixattr="boost_filesystem",
+ arcdir=boost.make_arcdir("filesystem"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ "src/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/filesystem/.yandex_meta/default.nix b/contrib/restricted/boost/filesystem/.yandex_meta/default.nix
new file mode 100644
index 00000000000..a3d4d6d77e3
--- /dev/null
+++ b/contrib/restricted/boost/filesystem/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_filesystem = stdenv.mkDerivation rec {
+ pname = "boost_filesystem";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "filesystem";
+ rev = "boost-${version}";
+ hash = "sha256-ASgDbzY7ArGuBxwxrBbVLn2mvIoVl8xBYg3egysdRbU=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/foreach/.yandex_meta/__init__.py b/contrib/restricted/boost/foreach/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..06eb79fb1ae
--- /dev/null
+++ b/contrib/restricted/boost/foreach/.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_foreach = NixSourceProject(
+ nixattr="boost_foreach",
+ arcdir=boost.make_arcdir("foreach"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/foreach/.yandex_meta/default.nix b/contrib/restricted/boost/foreach/.yandex_meta/default.nix
new file mode 100644
index 00000000000..ad05da281c4
--- /dev/null
+++ b/contrib/restricted/boost/foreach/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_foreach = stdenv.mkDerivation rec {
+ pname = "boost_foreach";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "foreach";
+ rev = "boost-${version}";
+ hash = "sha256-7Pt5487/5sFJmhKY4lz80Y6Ag/8yd0jq2CSbVoGijWI=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/format/.yandex_meta/__init__.py b/contrib/restricted/boost/format/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..21ef2db4baf
--- /dev/null
+++ b/contrib/restricted/boost/format/.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_format = NixSourceProject(
+ nixattr="boost_format",
+ arcdir=boost.make_arcdir("format"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ disable_includes=[
+ "streambuf.h",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/format/.yandex_meta/default.nix b/contrib/restricted/boost/format/.yandex_meta/default.nix
new file mode 100644
index 00000000000..941a48907cf
--- /dev/null
+++ b/contrib/restricted/boost/format/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_format = stdenv.mkDerivation rec {
+ pname = "boost_format";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "format";
+ rev = "boost-${version}";
+ hash = "sha256-p7Qy3XhapFa9umYjYDlIAyD0ESK3P237sTGFaKHiyFI=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/function/.yandex_meta/__init__.py b/contrib/restricted/boost/function/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..03d36c7c696
--- /dev/null
+++ b/contrib/restricted/boost/function/.yandex_meta/__init__.py
@@ -0,0 +1,18 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_function = NixSourceProject(
+ nixattr="boost_function",
+ arcdir=boost.make_arcdir("function"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ copy_sources_except_ext=["*.pl"],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/function/.yandex_meta/default.nix b/contrib/restricted/boost/function/.yandex_meta/default.nix
new file mode 100644
index 00000000000..647aea48b0b
--- /dev/null
+++ b/contrib/restricted/boost/function/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_function = stdenv.mkDerivation rec {
+ pname = "boost_function";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "function";
+ rev = "boost-${version}";
+ hash = "sha256-OsSx0OF1brwuswfNA0ynh2SeVw0Wl/6QKyZ9UQIIYZI=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/function_types/.yandex_meta/__init__.py b/contrib/restricted/boost/function_types/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..90682b899ea
--- /dev/null
+++ b/contrib/restricted/boost/function_types/.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_function_types = NixSourceProject(
+ nixattr="boost_function_types",
+ arcdir=boost.make_arcdir("function_types"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/function_types/.yandex_meta/default.nix b/contrib/restricted/boost/function_types/.yandex_meta/default.nix
new file mode 100644
index 00000000000..76483b0a6be
--- /dev/null
+++ b/contrib/restricted/boost/function_types/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_function_types = stdenv.mkDerivation rec {
+ pname = "boost_function_types";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "function_types";
+ rev = "boost-${version}";
+ hash = "sha256-GOyxfIPqyCTHm7Snm0UcTHQaR8bNA5QlNbX+0J1fwSI=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/functional/.yandex_meta/__init__.py b/contrib/restricted/boost/functional/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..ca22f96d76f
--- /dev/null
+++ b/contrib/restricted/boost/functional/.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_functional = NixSourceProject(
+ nixattr="boost_functional",
+ arcdir=boost.make_arcdir("functional"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/functional/.yandex_meta/default.nix b/contrib/restricted/boost/functional/.yandex_meta/default.nix
new file mode 100644
index 00000000000..9b1acfdc083
--- /dev/null
+++ b/contrib/restricted/boost/functional/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_functional = stdenv.mkDerivation rec {
+ pname = "boost_functional";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "functional";
+ rev = "boost-${version}";
+ hash = "sha256-U2tk/oxz+TTO/8Cz0ruSnG9QqjXBXAXLaXiedIuzQLI=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/fusion/.yandex_meta/__init__.py b/contrib/restricted/boost/fusion/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..17feaa35ca7
--- /dev/null
+++ b/contrib/restricted/boost/fusion/.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_fusion = NixSourceProject(
+ nixattr="boost_fusion",
+ arcdir="contrib/restricted/boost/fusion",
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/fusion/.yandex_meta/default.nix b/contrib/restricted/boost/fusion/.yandex_meta/default.nix
new file mode 100644
index 00000000000..85600354ca0
--- /dev/null
+++ b/contrib/restricted/boost/fusion/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_fusion = stdenv.mkDerivation rec {
+ pname = "boost_fusion";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "fusion";
+ rev = "boost-${version}";
+ hash = "sha256-oTJ2laEBpjx3MMS9QKFg9aW6LlfLH7JWcx9LABBmrgI=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/graph/.yandex_meta/__init__.py b/contrib/restricted/boost/graph/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..3b40ba0ab4a
--- /dev/null
+++ b/contrib/restricted/boost/graph/.yandex_meta/__init__.py
@@ -0,0 +1,32 @@
+from devtools.yamaker import boost
+from devtools.yamaker import fileutil
+from devtools.yamaker.modules import GLOBAL, Linkable, Switch
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self, populate_srcs=True)
+ with self.yamakes["."] as graph:
+ # Disable parallel version which makes use of OpenMP / MPI
+ fileutil.re_sub_dir(
+ f"{self.dstdir}/include",
+ r"#include BOOST_GRAPH_MPI_INCLUDE\(.*\)",
+ "",
+ )
+
+ graph.after("CFLAGS", Switch({"DYNAMIC_BOOST": Linkable(CFLAGS=[GLOBAL("-DBOOST_GRAPH_DYN_LINK")])}))
+
+
+boost_graph = NixSourceProject(
+ nixattr="boost_graph",
+ arcdir=boost.make_arcdir("graph"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/**/*.hpp",
+ "src/",
+ ],
+ copy_sources_except=[
+ "include/boost/graph/use_mpi.hpp",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/graph/.yandex_meta/default.nix b/contrib/restricted/boost/graph/.yandex_meta/default.nix
new file mode 100644
index 00000000000..b3622c8e8d7
--- /dev/null
+++ b/contrib/restricted/boost/graph/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_graph = stdenv.mkDerivation rec {
+ pname = "boost_graph";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "graph";
+ rev = "boost-${version}";
+ hash = "sha256-b3WNm/FhKETRFHaGFYK4AT6mPuNfULQDM2lg0Ai9I2k=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/graph/patches/deprecated-copy.patch b/contrib/restricted/boost/graph/patches/deprecated-copy.patch
new file mode 100644
index 00000000000..2d429f6c6e9
--- /dev/null
+++ b/contrib/restricted/boost/graph/patches/deprecated-copy.patch
@@ -0,0 +1,11 @@
+--- a/include/boost/graph/detail/adj_list_edge_iterator.hpp (index)
++++ b/include/boost/graph/detail/adj_list_edge_iterator.hpp (working tree)
+@@ -47,6 +47,8 @@ namespace detail
+
+ inline adj_list_edge_iterator() {}
+
++ inline adj_list_edge_iterator& operator=(const self& x) = default;
++
+ inline adj_list_edge_iterator(const self& x)
+ : vBegin(x.vBegin)
+ , vCurr(x.vCurr)
diff --git a/contrib/restricted/boost/graph/patches/modernize-throw-specs.patch b/contrib/restricted/boost/graph/patches/modernize-throw-specs.patch
new file mode 100644
index 00000000000..339deddcc16
--- /dev/null
+++ b/contrib/restricted/boost/graph/patches/modernize-throw-specs.patch
@@ -0,0 +1,26 @@
+--- a/include/boost/graph/bipartite.hpp (working tree)
++++ b/include/boost/graph/bipartite.hpp (working tree)
+@@ -42,1 +42,1 @@ namespace boost {
+- const char* what() const throw() { return "Graph is not bipartite."; }
++ const char* what() const noexcept { return "Graph is not bipartite."; }
+--- a/include/boost/graph/graphml.hpp (index)
++++ b/include/boost/graph/graphml.hpp (working tree)
+@@ -37,2 +37,2 @@ namespace boost
+- ~parse_error() throw() BOOST_OVERRIDE {}
+- const char* what() const throw() BOOST_OVERRIDE { return statement.c_str(); }
++ ~parse_error() BOOST_OVERRIDE {}
++ const char* what() const noexcept BOOST_OVERRIDE { return statement.c_str(); }
+--- a/include/boost/graph/graphviz.hpp (index)
++++ b/include/boost/graph/graphviz.hpp (working tree)
+@@ -661,2 +661,2 @@ struct bad_graphviz_syntax: public graph_exception {
+- const char* what() const throw() BOOST_OVERRIDE { return errmsg.c_str(); }
+- ~bad_graphviz_syntax() throw() BOOST_OVERRIDE {}
++ const char* what() const noexcept BOOST_OVERRIDE { return errmsg.c_str(); }
++ ~bad_graphviz_syntax() BOOST_OVERRIDE {}
+--- a/include/boost/graph/loop_erased_random_walk.hpp (index)
++++ b/include/boost/graph/loop_erased_random_walk.hpp (working tree)
+@@ -20,2 +20,2 @@
+- virtual ~loop_erased_random_walk_stuck() throw() {}
+- inline virtual const char* what() const throw()
++ ~loop_erased_random_walk_stuck() BOOST_OVERRIDE {}
++ const char* what() const noexcept BOOST_OVERRIDE
diff --git a/contrib/restricted/boost/graph/patches/w-unused-parameter.patch b/contrib/restricted/boost/graph/patches/w-unused-parameter.patch
new file mode 100644
index 00000000000..8f513495775
--- /dev/null
+++ b/contrib/restricted/boost/graph/patches/w-unused-parameter.patch
@@ -0,0 +1,64 @@
+--- a/include/boost/graph/adjacency_matrix.hpp (index)
++++ b/include/boost/graph/adjacency_matrix.hpp (working tree)
+@@ -1110,26 +1110,26 @@ struct adj_mat_pm_helper< D, VP, EP, GP, A, Tag, edge_property_tag >
+ typedef typename lookup_property_from_edge< boost::mpl::true_ >::result_type
+ single_const_type;
+
+- static type get_nonconst(adjacency_matrix< D, VP, EP, GP, A >& g, Tag tag)
++ static type get_nonconst(adjacency_matrix< D, VP, EP, GP, A >& /* g */, Tag tag)
+ {
+ return type(tag);
+ }
+
+ static const_type get_const(
+- const adjacency_matrix< D, VP, EP, GP, A >& g, Tag tag)
++ const adjacency_matrix< D, VP, EP, GP, A >& /* g */, Tag tag)
+ {
+ return const_type(tag);
+ }
+
+ static single_nonconst_type get_nonconst_one(
+- adjacency_matrix< D, VP, EP, GP, A >& g, Tag tag, edge_descriptor e)
++ adjacency_matrix< D, VP, EP, GP, A >& /* g */, Tag tag, edge_descriptor e)
+ {
+ return lookup_one_property< EP, Tag >::lookup(
+ *static_cast< EP* >(e.get_property()), tag);
+ }
+
+ static single_const_type get_const_one(
+- const adjacency_matrix< D, VP, EP, GP, A >& g, Tag tag,
++ const adjacency_matrix< D, VP, EP, GP, A >& /* g */, Tag tag,
+ edge_descriptor e)
+ {
+ return lookup_one_property< const EP, Tag >::lookup(
+--- a/include/boost/graph/dijkstra_shortest_paths.hpp (index)
++++ b/include/boost/graph/dijkstra_shortest_paths.hpp (working tree)
+@@ -97,7 +97,7 @@ public:
+ }
+
+ private:
+- template < class Edge, class Graph > void tree_edge(Edge u, Graph& g) {}
++ template < class Edge, class Graph > void tree_edge(Edge /* u */, Graph& /* g */) {}
+ };
+ template < class Visitors >
+ dijkstra_visitor< Visitors > make_dijkstra_visitor(Visitors vis)
+@@ -251,8 +251,8 @@ namespace detail
+ struct vertex_property_map_generator_helper< Graph, IndexMap, Value, false >
+ {
+ typedef boost::vector_property_map< Value, IndexMap > type;
+- static type build(const Graph& g, const IndexMap& index,
+- boost::scoped_array< Value >& array_holder)
++ static type build(const Graph& /* g */, const IndexMap& index,
++ boost::scoped_array< Value >& /* array_holder */)
+ {
+ return boost::make_vector_property_map< Value >(index);
+ }
+@@ -299,7 +299,7 @@ namespace detail
+ typedef boost::vector_property_map< boost::two_bit_color_type,
+ IndexMap >
+ type;
+- static type build(const Graph& g, const IndexMap& index)
++ static type build(const Graph& /* g */, const IndexMap& index)
+ {
+ return boost::make_vector_property_map< boost::two_bit_color_type >(
+ index);
diff --git a/contrib/restricted/boost/icl/.yandex_meta/__init__.py b/contrib/restricted/boost/icl/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..083cd9f881b
--- /dev/null
+++ b/contrib/restricted/boost/icl/.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_icl = NixSourceProject(
+ nixattr="boost_icl",
+ arcdir=boost.make_arcdir("icl"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/icl/.yandex_meta/default.nix b/contrib/restricted/boost/icl/.yandex_meta/default.nix
new file mode 100644
index 00000000000..bbeceee4431
--- /dev/null
+++ b/contrib/restricted/boost/icl/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_icl = stdenv.mkDerivation rec {
+ pname = "boost_icl";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "icl";
+ rev = "boost-${version}";
+ hash = "sha256-KNgAvevg1P0+qaE2eUtvfV/YCwEcXfUoZDTT6O5P0jU=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/integer/.yandex_meta/__init__.py b/contrib/restricted/boost/integer/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..0487a9cbbb0
--- /dev/null
+++ b/contrib/restricted/boost/integer/.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_integer = NixSourceProject(
+ nixattr="boost_integer",
+ arcdir=boost.make_arcdir("integer"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/integer/.yandex_meta/default.nix b/contrib/restricted/boost/integer/.yandex_meta/default.nix
new file mode 100644
index 00000000000..6049014de4d
--- /dev/null
+++ b/contrib/restricted/boost/integer/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_integer = stdenv.mkDerivation rec {
+ pname = "boost_integer";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "integer";
+ rev = "boost-${version}";
+ hash = "sha256-1ahgl0abaaFM3+itvtAMuyWQ0IHrViQfXHG0dGrXstw=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/interprocess/.yandex_meta/__init__.py b/contrib/restricted/boost/interprocess/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..cd730dc12f9
--- /dev/null
+++ b/contrib/restricted/boost/interprocess/.yandex_meta/__init__.py
@@ -0,0 +1,22 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_interprocess = NixSourceProject(
+ nixattr="boost_interprocess",
+ arcdir=boost.make_arcdir("interprocess"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ disable_includes=[
+ "atomic.h",
+ "vxAtomicLib.h",
+ "vxCpuLib.h",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/interprocess/.yandex_meta/default.nix b/contrib/restricted/boost/interprocess/.yandex_meta/default.nix
new file mode 100644
index 00000000000..e3262dd4621
--- /dev/null
+++ b/contrib/restricted/boost/interprocess/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_interprocess = stdenv.mkDerivation rec {
+ pname = "boost_interprocess";
+ version = "1.86.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "interprocess";
+ rev = "boost-${version}";
+ hash = "sha256-X8Ab1Mv7EArhtg6/c+vC3mk1lqOVvqsd+rvfP3MJnbA=";
+ };
+ };
+}
diff --git a/contrib/restricted/boost/intrusive/.yandex_meta/__init__.py b/contrib/restricted/boost/intrusive/.yandex_meta/__init__.py
new file mode 100644
index 00000000000..ea5d0c6ae38
--- /dev/null
+++ b/contrib/restricted/boost/intrusive/.yandex_meta/__init__.py
@@ -0,0 +1,22 @@
+from devtools.yamaker import boost
+from devtools.yamaker.project import NixSourceProject
+
+
+def post_install(self):
+ self.yamakes["."] = boost.make_library(self)
+
+
+boost_intrusive = NixSourceProject(
+ nixattr="boost_intrusive",
+ arcdir=boost.make_arcdir("intrusive"),
+ owners=["g:cpp-contrib", "g:taxi-common"],
+ copy_sources=[
+ "include/boost/",
+ ],
+ disable_includes=[
+ "BOOST_INTRUSIVE_INVARIANT_ASSERT_INCLUDE",
+ "BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT_INCLUDE",
+ "BOOST_INTRUSIVE_SAFE_HOOK_DESTRUCTOR_ASSERT_INCLUDE",
+ ],
+ post_install=post_install,
+)
diff --git a/contrib/restricted/boost/intrusive/.yandex_meta/default.nix b/contrib/restricted/boost/intrusive/.yandex_meta/default.nix
new file mode 100644
index 00000000000..429ba831af6
--- /dev/null
+++ b/contrib/restricted/boost/intrusive/.yandex_meta/default.nix
@@ -0,0 +1,13 @@
+self: super: with self; {
+ boost_intrusive = stdenv.mkDerivation rec {
+ pname = "boost_intrusive";
+ version = "1.87.0";
+
+ src = fetchFromGitHub {
+ owner = "boostorg";
+ repo = "intrusive";
+ rev = "boost-${version}";
+ hash = "sha256-n/rDG+VhBRy5cn0Bvhs4IdhWe6PMVhiT9QYUybJhBoU=";
+ };
+ };
+}