contrib_restricted.policy 8.9 KB

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