contrib_restricted.policy 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. # == Rules for contrib/restricted section ==
  2. #
  3. # NOTE: rules should be ordered from specific to generic (first matching rule is used)
  4. # See rule syntax docs: https://wiki.yandex-team.ru/devrules/overall/peerdirprohibition/
  5. # taxi/tools/dorblu is legacy tool, only hotfixes are made
  6. ALLOW taxi/tools/dorblu/lib -> contrib/restricted/boost/libs
  7. # scale_ipp filter for ffmpeg use Intel IPP hence it is nonfree
  8. ALLOW strm/cv/ffmpeg_adcv/toshik_filters -> contrib/restricted/ffmpeg-3-scale-ipp
  9. # libzvbi is GPL
  10. ALLOW strm/cv/ffmpeg_adcv/libavcodec -> contrib/restricted/libzvbi
  11. # CityHash-1.0.2 is a specific version hardwired into ClickHouse public interface
  12. ALLOW clickhouse -> contrib/restricted/cityhash-1.0.2
  13. ALLOW library/cpp/clickhouse -> contrib/restricted/cityhash-1.0.2
  14. ALLOW saas/library/hash_to_block_mode -> contrib/restricted/cityhash-1.0.2
  15. # dragonbox is a specific library for float formatting
  16. ALLOW clickhouse -> contrib/restricted/dragonbox
  17. # same rules for restricted set of sources in YQL
  18. ALLOW ydb/library/yql/udfs/common/clickhouse/client -> contrib/restricted/cityhash-1.0.2
  19. ALLOW ydb/library/yql/udfs/common/clickhouse/client -> contrib/restricted/boost
  20. ALLOW ydb/library/yql/udfs/common/clickhouse/client -> contrib/restricted/dragonbox
  21. ALLOW ydb/library/yql/udfs/common/clickhouse/client -> contrib/restricted/fast_float
  22. # fast_float is a faster alternative to double-conversion for float parsing.
  23. # ClickHouse uses the best libraries for performance, that's why it changes them with insane speed.
  24. # Arcadia is not ready for this, that's why we added this library in restricted.
  25. ALLOW clickhouse -> contrib/restricted/fast_float
  26. # ClickHouse uses hash-table from abseil-cpp for better performance in CacheDictionaries and SSDCacheDictionaries,
  27. # because it the best best open source hash table framework (swiss hash tables, hash functions)
  28. ALLOW clickhouse -> contrib/restricted/abseil-cpp
  29. # TurboBase64 is a fast vectorized library for encoding/decoding base64.
  30. ALLOW clickhouse -> contrib/restricted/turbo_base64
  31. # For HBase client: CONTRIB-1790
  32. ALLOW passport/infra -> contrib/restricted/thrift
  33. # keyutils is LGPL: CONTRIB-2236
  34. ALLOW passport/infra -> contrib/restricted/keyutils
  35. # For Apache Arrow: CONTRIB-1662
  36. ALLOW mds -> contrib/restricted/uriparser
  37. # For patched imagemagick CONTRIB-1902
  38. ALLOW mds -> contrib/restricted/ImageMagickMDS
  39. # https://st.yandex-team.ru/CONTRIB-2020
  40. ALLOW weather -> contrib/restricted/range-v3
  41. # https://st.yandex-team.ru/CONTRIB-2492
  42. ALLOW weather -> contrib/restricted/aviso-fes
  43. # ALSA library is LGPL
  44. ALLOW yandex_io -> contrib/restricted/alsa-lib
  45. ALLOW smart_devices -> contrib/restricted/alsa-lib
  46. # Avahi is LGPL
  47. ALLOW yandex_io -> contrib/restricted/avahi
  48. # GLib is LGPL
  49. ALLOW maps/libs/img -> contrib/restricted/glib
  50. ALLOW maps/renderer/libs/svgrenderer -> contrib/restricted/glib
  51. ALLOW market/cataloger -> contrib/restricted/glib
  52. ALLOW market/idx/feeds/feedparser -> contrib/restricted/glib
  53. ALLOW metrika/core/libs/statdaemons -> contrib/restricted/glib
  54. ALLOW metrika/core/libs/strconvert -> contrib/restricted/glib
  55. ALLOW yandex_io -> contrib/restricted/glib
  56. # GStreamer is LGPL
  57. ALLOW sdg/infra/rtsp_probe -> contrib/restricted/gstreamer
  58. ALLOW sdg/infra/rtsp_probe -> contrib/restricted/gst-plugins-base
  59. ALLOW sdg/infra/rtsp_probe -> contrib/restricted/gst-plugins-good
  60. ALLOW sdg/infra/rtsp_probe -> contrib/restricted/gst-plugins-ugly
  61. ALLOW sdg/infra/rtsp_probe -> contrib/restricted/gst-rtsp-server
  62. ALLOW yandex_io -> contrib/restricted/gstreamer
  63. ALLOW yandex_io -> contrib/restricted/gst-plugins-base
  64. ALLOW yandex_io -> contrib/restricted/gst-plugins-good
  65. ALLOW yandex_io -> contrib/restricted/gst-plugins-bad
  66. ALLOW yandex_io -> contrib/restricted/patched/gst-libav
  67. # mpg123 is LGPL
  68. ALLOW extsearch/audio/kernel/recoglib -> contrib/restricted/mpg123
  69. # OpenAL Soft is LGPL
  70. ALLOW yandex_io -> contrib/restricted/openal-soft
  71. ALLOW speechkit -> contrib/restricted/openal-soft
  72. # rubberband is a GPL audio stretching library
  73. ALLOW dict/mt/video -> contrib/restricted/rubberband
  74. # Allowed subset of abseil is exported via library/
  75. ALLOW library/cpp/containers/absl_flat_hash -> contrib/restricted/abseil-cpp/absl/container
  76. ALLOW library/cpp/containers/absl_tstring_flat_hash -> contrib/restricted/abseil-cpp-tstring/y_absl/container
  77. # spdlog is just yet another best logging engine
  78. # The best logging engine, however, is to be designed in CPPCOM-20
  79. ALLOW quasar/backend/src/base -> contrib/restricted/spdlog
  80. ALLOW crypta/lib/native/log -> contrib/restricted/spdlog
  81. ALLOW yandex_io -> contrib/restricted/spdlog
  82. ALLOW smart_devices/tools/launcher2 -> contrib/restricted/spdlog
  83. ALLOW smart_devices/tools/updater -> contrib/restricted/spdlog
  84. # cmph is a limited-use library
  85. ALLOW ads/yacontext -> contrib/restricted/cmph
  86. # http-parser is a low-level parser for http bytestream.
  87. # Consider using high-level alternatives.
  88. ALLOW mds -> contrib/restricted/http-parser
  89. ALLOW taxi/uservices -> contrib/restricted/http-parser
  90. ALLOW yt/yt/core/http -> contrib/restricted/http-parser
  91. ALLOW yweb/robot/fetcher/fetcher/user/http -> contrib/restricted/http-parser
  92. # Prefer using skynet for data distribution
  93. ALLOW maps/infra/ecstatic -> contrib/restricted/libtorrent
  94. # Consider using util / library/cpp/digest versions instead of a raw murmurhash functions.
  95. #
  96. # strm/common/go/pkg/murmur3 is a CGO binding to murmurhash, thus dependency is allowed
  97. ALLOW strm/common/go/pkg/murmur3 -> contrib/restricted/murmurhash
  98. ALLOW clickhouse -> contrib/restricted/murmurhash
  99. # exiv2 is GPL-licensed. Only small subset of our libraries can use it.
  100. ALLOW extsearch/images/chunks/exiftags -> contrib/restricted/exiv2
  101. ALLOW maps/wikimap/mapspro/services/mrc/libs/common -> contrib/restricted/exiv2
  102. ALLOW yweb/disk/ocraas -> contrib/restricted/exiv2
  103. # Only allow boost in yandex projects listed below
  104. ALLOW adfox -> contrib/restricted/boost
  105. ALLOW ads -> contrib/restricted/boost
  106. ALLOW advq -> contrib/restricted/boost
  107. ALLOW alice/nlu -> contrib/restricted/boost
  108. ALLOW alice/vins_contrib/crfsuitex -> contrib/restricted/boost
  109. ALLOW clickhouse -> contrib/restricted/boost
  110. ALLOW devtools -> contrib/restricted/boost
  111. ALLOW extsearch/geo/poi_service/tools/storage_reader -> contrib/restricted/boost
  112. ALLOW infra/contrib/pdns -> contrib/restricted/boost
  113. ALLOW juggler/pongerd -> contrib/restricted/boost
  114. ALLOW lbs/locator -> contrib/restricted/boost
  115. ALLOW library/cpp/testing/boost_test$ -> contrib/restricted/boost/libs/test
  116. ALLOW library/cpp/testing/boost_test_main$ -> contrib/restricted/boost/libs/test
  117. ALLOW library/cpp/testing/gtest_boost_extensions -> contrib/restricted/boost
  118. ALLOW logbroker/pipe-parser -> contrib/restricted/boost
  119. ALLOW mail -> contrib/restricted/boost
  120. ALLOW maps -> contrib/restricted/boost
  121. ALLOW market/idx/feeds/feedparser -> contrib/restricted/boost
  122. ALLOW market/idx/stats/src -> contrib/restricted/boost
  123. ALLOW mds -> contrib/restricted/boost
  124. ALLOW metrika -> contrib/restricted/boost
  125. ALLOW netsys/tiles-vcdiff/gen-tiles -> contrib/restricted/boost
  126. ALLOW orgvisits/dwellplaces -> contrib/restricted/boost
  127. ALLOW orgvisits/heuristics -> contrib/restricted/boost
  128. ALLOW orgvisits/library/soc -> contrib/restricted/boost
  129. ALLOW quasar/backend -> contrib/restricted/boost
  130. ALLOW regulargeo/research -> contrib/restricted/boost
  131. ALLOW rem/python/geobase30 -> contrib/restricted/boost
  132. ALLOW drive/contrib/cpp/telemetry -> contrib/restricted/boost
  133. ALLOW smart_devices -> contrib/restricted/boost
  134. ALLOW statbox/libstatbox -> contrib/restricted/boost
  135. ALLOW taxi/uservices -> contrib/restricted/boost
  136. ALLOW tools/idl -> contrib/restricted/boost
  137. ALLOW voicetech/tools -> contrib/restricted/boost
  138. ALLOW weather/archive/grid_api/lib -> contrib/restricted/boost
  139. ALLOW yabs/telephony -> contrib/restricted/boost
  140. ALLOW yandex_io -> contrib/restricted/boost
  141. ALLOW yweb/robot/js -> contrib/restricted/boost
  142. ALLOW market/access/server/env -> contrib/restricted/boost
  143. ALLOW sdg/sdc -> contrib/restricted/boost
  144. ALLOW search/meta/scatter/ant -> contrib/restricted/boost
  145. ALLOW search/meta/scatter/ut -> contrib/restricted/boost
  146. # use GTEST target in ya.make instead of PEERDIRing contrib/restricted/googletest
  147. # and include <library/cpp/testing/gtest.h> instead of <gtest/gtest.h> (<gmock/gmock.h>)
  148. ALLOW contrib -> contrib/restricted/googletest
  149. ALLOW library/cpp/testing/gmock_in_unittest -> contrib/restricted/googletest
  150. ALLOW library/cpp/testing/gtest -> contrib/restricted/googletest
  151. ALLOW library/cpp/testing/gtest_boost_extensions -> contrib/restricted/googletest
  152. ALLOW library/cpp/testing/gtest_extensions -> contrib/restricted/googletest
  153. ALLOW library/cpp/testing/gtest_main -> contrib/restricted/googletest
  154. ALLOW library/cpp/testing/gtest_protobuf -> contrib/restricted/googletest
  155. ALLOW library/python/testing/gtest/test/gtest -> contrib/restricted/googletest
  156. # TODO remove this lines after they will switch to library/cpp/testing/gtest
  157. ALLOW mail -> contrib/restricted/googletest
  158. ALLOW maps/mobile/libs -> contrib/restricted/googletest
  159. ALLOW maps/mobile/bundle -> contrib/restricted/googletest
  160. ALLOW mds -> contrib/restricted/googletest
  161. # A mere proxy to allow using gmock in libraries without being bound to specific test framework
  162. # See IGNIETFERRO-1827 for details.
  163. ALLOW library/cpp/testing/gmock -> contrib/restricted/googletest/googlemock
  164. # allow usage of MIT part
  165. ALLOW .* -> contrib/restricted/librseq/headeronly
  166. # we use nfs-ganesha for Network File Store gateway
  167. ALLOW cloud/filestore/gateway/nfs -> contrib/restricted/nfs_ganesha
  168. ALLOW yandex_io -> contrib/restricted/patched/hostap_client
  169. # Default policies:
  170. #
  171. # Do not restrict contrib
  172. # All peerdirs to contrib/restricted from outside are prohibited
  173. #
  174. ALLOW contrib -> contrib/restricted
  175. DENY .* -> contrib/restricted