Почему Linux мёртв в настольном сегменте на примере OBS Studio

Приложение OBS Studio весьма популярно, но популярность оно получило исключительно за счет пользователей Windows, которым просто хотелось что-то бесплатное для записи видео и проведения трансляций. Хотя в техническом плане OBS Studio — довольно плохо реализованная программа, у неё есть много проблем и ограничений технического характера, что, к слову, делает невозможным использование на целом спектре конфигураций ПК, но сейчас речь не об этом.
реклама

OBS Studio
Ну что же, давайте прямо в лоб, зайдём на официальный сайт проекта OBS Studio и скачаем установочный файл! Для Windows указаны системные требования, скудно, но сойдёт, и просто предоставляют установочный exe-файл, всё элементарно и понятно. Аналогичным образом сделано и для MacOS, вообще никаких проблем.
![]() |
![]() |
реклама
А что же у «дряхлого пингвина»? Правильно, мракобесие! Нет никаких пригодных для использования и распространения установочных файлов, только инструкции и танцы с бубном! Абсолютная недружелюбность по отношению к пользователям.

Flathub (Flatpak)
Может, кнопка «Скачать на FLATHUB» поможет? Конечно нет! Ведь это очередной линуксоидный репозиторий, только с другой стороны, но со всеми характерными проблемами для линуксоидных способов распространения софта, да ещё проблемы контейнеризации добавляются. А ещё меня, пользователя, по факту нагло обманули, ведь я не могу скачать ничего на ресурсе FLATHUB, ведь там не позволяют скачивать установочные пакеты программ!

Репозитории
реклама
Может, метод установки из официальных линуксоидных репозиториев мне, пользователю, поможет? Нет! Простыня каких-то заклинаний для терминала и требований к зависимостям, и не факт, что всё заработает по инструкциям! Мусорный вариант Flatpak вообще не годится, ибо уже сказано про него выше.
![]() |
![]() |
Дальше там идёт вариант Ubuntu, а почему не для всех линуксов? Или разработчики слишком нежные, чтобы выйти за пределы непригодной для использования Ubuntu (для меня)? Впрочем, это не важно, ведь Ubuntu основана на Debian, а значит должна быть совместимость с прочими линуксами на той же основе, ведь так?
Упс, что такое? Команда не найдена? Как же так? Ох уж эти инструкции линуксоидные...
реклама

Ой, да что такое, а проблема, оказывается, популярная. Эх, разработчики OBS, какую же ересь вы советуете пользователям Linux. Наверное, поиздеваться решили...

Неофициальные сборки
Отлично, остаются неофициальные сборки! Ведь линуксы такие все безопасные из себя по словам линуксоидов, да и софта якобы целая гора и горка рядом, да ещё прямо из официальных репозиториев! Ага, только мне, пользователю, почему-то приходится идти в раздел неофициальных сборок, ведь все остальные варианты для Linux — полнейший мусор...
![]() |
![]() |
Что там, обновить списки репозиториев и установить ffmpeg? Отлично, у меня уже установлен.

Дальше установить пакет obs-studio, у меня такой уже установлен, потому вызовем команду «apt-cache policy», и что мы видим? Правильно, в репозиториях Debian 12 Bookworm уже давно протухшая версия OBS Studio 29.0.2, когда даже у меня в дистрибутиве Chimbalix из коробки встроена версия 30.0.1...

По факту у меня, пользователя, нет вменяемых способов получить актуальную версию приложения OBS Studio, просто потому что Linux, с его отвратительными философиями и отношением к пользователям. Хотя разработчиков OBS Studio тоже следовало натыкать носом за такое отношение к пользователям Linux, ведь они могли собрать свою поделку по-человечески, но не сделали этого и не собираются делать, как показывает их официальный сайт и репозитории на GitHub.
Компиляция из исходного кода
Остается последний вариант — собрать OBS из исходного кода! Как это линуксоиды порой втирают в уши, мол, исходный код взял да скомпилировал! Не то что в клятой и поганой Windows, где всё изначально по-человечески распространяют!
Ну что же, есть инструкция на 4 простыни, даже больше, ведь многое скрыто под спойлерами.
![]() |
![]() |
![]() |
![]() |
Компиляцией софта для Linux лучше не заниматься на основной операционной системе, многие не понимают почему, до тех пор, пока не займутся этим мракобесием... Показывать многочасовые танцы с бубном над установкой чистого Debian 12 Bookworm я не буду, это унылый перебор параметров виртуальной машины и танцев с бубном над разметкой диска, за что спасибо отвратительному установщику Calamares, что не способен адекватно установить дистрибутив Linux из-за ущербного и крайне привередливого функционала разметки разделов и установки загрузчика.
Так что оставим за кадром всё то мракобесие с установкой линукса, перейдём сразу к установленной системе, именно в Debian 12 я буду пытаться компилировать OBS Studio, уже второй раз, первый для себя делал, а второй уже для статьи, иначе если делать сходу для статьи, то это будет целый цикл статей с бесконечными танцами возле бубна над бесконечными линуксоидными проблемами...

Начинаем с подготовки зависимостей, выбираем «Debian based» раздел, в инструкции ничего не сказано про конкретную требуемую версию линукса, а значит, я могу взять не только основанные на Debian линуксы, но и сам Debian, почему бы и нет?
Разумеется, ни о какой компиляции софта из исходного кода и речи не может идти на автономных системах, ибо Linux со своими бесконечными зависимостями, так что интернет придётся подключить для высасывания неизвестного количества зависимостей.
![]() |
![]() |
Кстати, там, вижу, подключен «backports» репозиторий в чистом Debian 12, может, свежий OBS Studio будет? Ага, конечно, такой же засохлый 29-й версии нашёлся, когда актуальная 31-я версия, а ведь линуксоиды очень любят рассказывать сказки неопытным людям, мол, подключи backports репозиторий и обновляй себе софт...

Ну что же, идём по инструкции, вставляем первый набор зависимостей и ждём.
![]() |
![]() |
![]() |
Вставляем следующий набор зависимостей и снова ждём установку.
![]() |
![]() |
![]() |
Третья пачка зависимостей пошла, теперь, полагаю, все понимают, почему я говорил, что компиляцией софта из исходного кода лучше заниматься в виртуальной машине, а не на реальной используемой системе, просто это сущее адское мракобесие из зависимостей.
![]() |
![]() |
![]() |
Наконец последняя пачка отвратительных зависимостей, упс, что такое, пакет «libfdk-aac-dev» не найден? Ох уж эти линуксоидные репозитории, а ведь делаю строго по инструкции от разработчиков OBS Studio, и уже такая подстава...

И, конечно же, я далеко не единственный с такой проблемой, вдобавок поисковая система путается между libfdk-aac-dev и libfdk-aac1, для справки, это разные пакеты. Ох уж эти разработчики OBS Studio, своими клешнями даже инструкцию нормальную не могут написать, не говоря уже о том, чтобы нормально собрать рабочее приложение, и пользователю не приходилось заниматься вот этим вот мракобесием лютым...

Кстати, проблема известна аж с 2021 года, и разработчики OBS Studio ничего с этим не сделали, что, к слову, говорит об их низкой компетенции, вроде не одиночка по приколу разрабатывает проект, а такой идиотизм до сих пор не исправили.
Короче, исключаю отсутствующую зависимость и устанавливаю последнюю пачку мусора в систему, будем собирать без этого модуля... Объективно это всё мусор, ведь нужно оно только для компиляции программы, разработчики которой оказались слишком глупыми, чтобы самим собрать всё по-человечески и не издеваться над пользователями.
![]() |
![]() |
![]() |
Дальше по инструкции OBS-Browser, мне он не нужен, тем более для нужно будет ещё зависимостей где-то наковырять, брр, так что обойдёмся без браузера.
Теперь клонирую репозиторий OBS Studio, как в инструкции, заодно архивирую папку, это будет резервная копия, чтобы заново всё не скачивать при любом спотыкании на ровном месте, а таких спотыканий будет очень много у обычных пользователей, попытавшихся собрать нужное приложение под Linux, ввиду отсутствия адекватных установочных файлов, пригодных для распространения и использования.
![]() |
![]() |
![]() |
А вот дальше начинаются серьёзные проблемы, в инструкции указана команда для конфигурации проекта, но не указано, какой профиль использовать, даже элементарных примеров нет, только ссылка на документацию cmake, на данном этапе абсолютное большинство нормальных людей просто удалят линукс и забудут как про страшный сон, вернувшись в Windows...

Может, в документации cmake подскажут, что нужно сделать для компиляции OSB Studio? Конечно нет, вот вам огромная простыня и танцуйте с этим, как хотите!
![]() |
![]() |
![]() |
Одно радует, с исходным кодом есть файл «CMakePresets.json», и там есть профиль «ubuntu», его и будем настраивать, но сначала переименуем файл в «CMakeUserPresets.json», чтобы было всё по инструкции.
![]() |
![]() |
![]() |
Далее скуриваем «common build options» и настраиваем профиль. Вставляю параметры для портативной компиляции, чтобы программу можно было переносить в другие места, а также параметр ENABLE_NVENC, меня очень смущает, как в документации написаны данные параметры, выглядит оторвано от синтаксиса json, но доверимся инструкции, вдруг «так надо»?

Да, сначала в инструкции пишут про конфигурацию, а про параметры конфигурации уже потом, это чтобы пользователь сначала помучился, наверное, не понимая, почему ничего не получается... На этом подготовка завершена, на всякий случай делаю ещё одну резервную копию каталога с исходным кодом, не хочу снова настраивать всё заново, если что-то пойдёт не так.
Упс, что такое? Опять проблемы? 84 строка, как раз параметр NVENC, сделанный строго по инструкции, эх, руки бы вырвать оттуда, где они сейчас, и вставить в плечи тем писателям, что пишут такие инструкции, линуксоидные...

Исправляем json файл и пробуем снова! Упс, да что такое, опять ошибка! CMake не понимает параметр «Version»!

Снова ползём в поисковую систему, а почему? Правильно, потому что разработчики не осилили сборку своего же приложения под Linux, в итоге пользователю приходится заниматься этим идиотизмом.

В интернете пишут, что cmake слишком старый, не понимает такие штуки, хотя у меня вроде как не слишком старая версия, но, наверное, всё же старая... Меня только одно интересует, почему разработчики OBS Studio не написали про требуемую версию cmake? Очередная издёвка над пользователем?

Что делать? Правильно, идти в линуксоидный репозиторий и молиться, чтобы там нашлось обновление для cmake, и да, обновление нашлось, но исключительно в репозитории backports, в нормальном только старая версия...
Хотя у меня есть свой собственный пакет для обновления cmake до версии 3.31.7, а в backports репозитории последняя версия 3.31.6, но это не страшно, возьмём из репозитория, хотя линуксоиды всё равно будут верещать, мол, пакет неправильный, репозиторий не тот, система не та, дистрибутив не тот, руки не те и прочий информационный шум в попытках выставить Linux лучше, чем он есть на самом деле.

Теперь всё должно нормально собраться, верно?

А вот и нет, конфигурация обрывается на версии ffmpeg, нужна версия 6.1, а в наличии только 5.1, и дальше никак, всё, скомпилировали поделку для Linux из исходного кода под названием OBS Studio...
![]() |
![]() |
Поисковая система говорит о том, что эта проблема типичная, но решения толкового нет, за что ведро помоев на голову разработчикам OBS Studio, что допускают такие проблемы с зависимостями и даже не предупреждают...

При этом, что забавно, ffmpeg вообще не установлен в системе, а OBS пишет, что нашёл, но версия не подходит, получается дезинформация какая-то, или ещё одно издевательство над пользователем, что решился скомпилировать актуальную версию OBS Studio ввиду отсутствия пригодных для распространения и использования установочных файлов.

А что, если установить ffmpeg? Да ничего, ошибка та же, требует библиотеки именно тех версий, которые в принципе невозможно установить в Debian 12, просто не существует в репозиториях...

Но знаете, у меня есть скомпилированный ffmpeg версии 6.1, именно такой, что требуется для компиляции, как думаете, если я подкину руками все библиотеки, оно прокатит?
![]() |
![]() |
Ну не может ведь что-то пойти не так? Ах да, может, ведь в скомпилированном ffmpeg нет «.so» библиотек, необходимых для компиляции, только «.a» архивы для разработки.

Но не беда, на сайте ffmpeg нашлась версия 6.1, уже скомпилированная с библиотеками, но без «.a» архивов, так что берём всё на флешку и тащим в виртуальную машину.

Но увы, библиотеки явно заменены более новыми, однако ошибка та же...
![]() |
![]() |
![]() |
Может, библиотеки ffmpeg опять слишком старые? Давайте возьмем версию 7.1, чтобы наверняка! В системе уже целая помойка из библиотек, но OBS Studio упорно не желает видеть ничего, кроме версии 5.1, и что с этим делать, непонятно.
![]() |
![]() |
![]() |
Заключение
Вот так происходит компиляция софта для Linux из исходного кода, при всём желании обычный пользователь никогда в жизни не соберёт даже несчастный OBS Studio, если только он не будет сидеть на том же самом линуксе, на котором сидят разработчики, если они вообще сидят на линуксе... Но в таком случае хвалёные линуксоидные «исходники» теряют абсолютно весь свой смысл (собрать программу где угодно).
Думаю, есть смысл поискать аналоги OBS Studio, вдруг есть более вменяемые разработчики, которые удосужились собрать нормальные установочные файлы или хотя бы обычные архивы с пригодными для использования исполняемыми файлами, а не вот это всё идиотское мракобесие, характерное для Linux в целом.
Бонус (Installer-SH)
Неужели всё так закончится? И нет никакой возможности по-человечески воспользоваться актуальными версиями OBS Studio? На самом деле есть вариант, не совсем «по-человечески», конечно, это сторонний AppImage контейнер...

Но проблема в том, что такой вариант не видит NVENC Encoder, да и о проблемах AppImage говорить в очередной раз не вижу смысла, одна из таких проблем уже видна на скриншоте ниже, это засорение домашнего каталога пользователя всевозможными файлами конфигурации и прочим мусором, что может приводить к конфликтам версий. Я уже не говорю про технические проблемы формата AppImage...

Ну а проблема конкретно данной сборки в том, что это, по сути, половина Линукса в контейнере, да, кто-то настолько извратился, что скомпилировал в «подходящей» среде OBS Studio, а после упаковал с зависимостями в контейнер, в том числе вместе с такой базовой зависимостью, как GLIBC версии 2.38. Интересно, почему же оно не видит NVENC? Даже не знаю... Это к слову коротко о проблемах контейнеров линуксоидных, к которым, собственно, уже давно ушли в серверном сегменте, заколебавшись с Линуксом и его зависимостями.
![]() |
![]() |
![]() |
Впрочем, мне всё равно, ведь я хочу упаковать этот OBS в новую версию установочного пакета Installer-SH 2.4-Dev, почему Dev? Потому что ещё не выпущена финальная версия 2.4, потому воспользуемся версией на стадии разработки, может, какие нюансы ещё подправлю заодно, пока упакую.

Так как у программы есть лишь один исполняемый файл, я просто закидываю всё в каталог «Program», настраиваю «Launcher» и всё на этом, файлы ярлыков даже не буду трогать из раздела «System files», нет нужды в этом, настолько оптимизировал Installer-SH к текущему моменту в плане упаковки новых приложений... Хотя ладно, ярлык придётся немного поправить, ведь по умолчанию он запускается в режиме терминала, а нужно без.

Разумеется, сам установочный пакет придётся настроить, но тут ничего сложного, по крайней мере для меня, нужно будет создать инструкцию по упаковке, но сейчас достаточно просто вписать нужные данные в нужные места.

Осталось установить и проверить.
![]() |
![]() |
![]() |
А вот это неприятно, есть предупреждение об ошибке распаковки архива, хотя он точно не битый, а значит, проблема с символическими ссылками... Такое бывает, когда с потрохами пихают Linux в контейнер, дабы избежать характерный ад зависимостей, не первый случай уже.

И да, проблема в символических ссылках, некоторые потерялись, архиватор 7-Zip их посчитал опасными при распаковке, те самые ссылки с абсолютными путями, и даже -snld параметр не помогает...
![]() |
![]() |
![]() |
И вообще, некоторые ссылки созданы поломанными, они указывают в несуществующие каталоги, при этом есть каталоги, в которые они могли бы указывать, но не указывают, вероятно, сборщик контейнера и AppImage пакета допустил косяки, а мой Installer-SH теперь ругается и бьёт по рукам за такое мракобесие линуксоидное, брр, надо переделывать.

Оно, конечно, и так работает, но зачем напрягать пользователя лишними сообщениями об ошибках во время установки? Да и некоторые ссылки ведут на системные каталоги, AppImage, конечно, промолчит, но вот Installer-SH не стал молчать... Самое неприятное то, что ряд ссылок явно устарели, и файлов просто не существует нужных, на которые они могли бы вести, короче, спустя рукава набросали в контейнер всего, и так сойдёт.
А потом жалуются линуксоиды, почему это никто в здравом уме не желает разрабатывать софт под линукс... Оно мне надо? Решать проблемы нерадивых разработчиков и упаковщиков, исправляя битые символические ссылки, или чего ещё? И вот на таких полагаться при разработке своего софта? Да ну их с этим их линуксом, лучше поиграю...

Ладно, вернёмся к OBS Studio, ради интереса запустил оригинальный AppImage, а то вдруг ссылки побились, когда распаковывал? Но нет, даже при запуске оригинального контейнера есть ругань на отсутствующие файлы вроде os-release, так что это точно не моя проблема.

Впрочем, раз уж работает и без «опасных» символических ссылок, а кривые можно руками подправить, то можно так и оставить всё, но только на время, ведь есть ссылки, удаление которых явно нежелательно, короче, ещё вернёмся к этому вопросу... Сейчас есть другая проблема, OBS Studio всегда закрывается с ошибкой, и прослойка от Installer-SH это ловит, причём даже в оригинальном виде «как есть», со всем набором битых ссылок.

Причём оригинальный AppImage также всегда закрывается ошибкой, а значит, эта проблема уже была, и я её обнаружил благодаря Installer-SH. Написать условие для игнорирования общей ошибки под номером 1? Ну даже не знаю, прослойку для того и разрабатывал, чтобы она ловила ошибки и информировала пользователя, но это будет просто издевательством, если постоянно при закрытии будет вылазить терминал с ошибкой приложения...

В любом случае меня сейчас напрягает масса явно мусорных битых ссылок, оставшихся после сборки контейнера, пожалуй, это следует вычистить, по крайней мере, без этой свалки мусора всё работает точно так же, как и со свалкой.

А вот со ссылками, указывающими на системные каталоги, уже сложнее, я не могу заставить современные версии архиватора 7z-Zip извлекать подобные вещи, ибо разработчик архиватора так захотел, начиная с 2021 года, и не предоставляет возможности распаковать архив, игнорируя «безопасность»...

Так что было решено поискать старые версии архиватора, в которых не было ещё такого идиотизма с «безопасностью».
Извини, Игорь Павлов, разработчик архиватора 7-Zip, в том числе за такое прямое обращение в лоб, но ты реально сделал полнейшую дичь, я не одобряю принудительную «безопасность», особенно когда она реально мешает, у пользователя должен быть выбор, а ты лишаешь этого выбора...
В итоге нашёлся только p7zip 16.02 из простого в использовании, правда, самая старая версия предназначена для Debian 10, а значит, могут быть проблемы с запуском в более старых линуксах.

И да, p7zip заработал начиная лишь с Debian 9.
![]() |
![]() |
![]() |
Это на самом деле большая проблема, хоть AppImage и не запустился в Debian 7, но вот OBS Studio смог запуститься даже в таком старом линуксе благодаря контейнеру. Хотя Debian 7 и намного новее легендарной Windows 7, но по меркам линуксов это просто невероятное достижение, что приложение запустилось в настолько старом линуксе. Так что менять 7-Zip на более старую версию нельзя, ибо это ограничит спектр дистрибутивов, в которых можно будет установить программу, либо придётся пожертвовать сжатием и перевести Installer-SH на какой-нибудь tar.xz...
![]() |
![]() |
OBS Studio поистине отвратное приложение в техническом плане, столько мороки с ним, это просто не выразить без матерных слов... Впрочем, tar.xz хоть и хуже сжимает, даже настроенный на максимальное сжатие, но это всё равно лучше исходного AppImage, что-то среднее вышло, зато не будет принудительных воплей про «безопасность» и потери ссылок потенциально нужных.

Осталось внести доработки в Installer-SH, чтобы он мог использовать архиватор tar, может сделать возможность переключения между архиваторами в следующих версиях установочного пакета, ведь как показала практика, иногда такое нужно...

В общем, осталось принять решение насчёт общего кода ошибки при выходе из OBS Studio, наверное, просто проигнорирую ошибку под номером 1, не вижу других вариантов, не полезу же переписывать саму программу, особенно учитывая, какая проблема скомпилировать эту поделку под названием OBS...
Осталось проверить установочный пакет, и да, хоть tar.xz и слабее в плане уровня сжатия, а также распаковывается ощутимо дольше во время установки, тем не менее он работает, а значит, есть смысл добавить в новые версии Installer-SH возможность переключения архиватора, чтобы даже такие идиотские в техническом плане программы можно было устанавливать без проблем.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
В целом OBS Studio работает, но почему я собрал пакет с выносом домашнего каталога?

Правильно, потому что меня уже достала эта помойка в основном домашнем каталоге, когда каждое приложение гадит своими файлами как захочет, а потом некоторые ещё начинают конфликтовать из-за несовместимых конфигураций, брр.
![]() |
![]() |
![]() |
Но знаете, что было самым неожиданным? Правильно, хранение библиотек в домашнем каталоге пользователя, и ладно пара файлов, но там целая охапка размером 1,4 ГБ, похоже, оно скопировало системные библиотеки, надо будет добавить этот размер в информацию пакета...
![]() |
![]() |
Вот так, на всякий случай.

Осталось протестировать установочный пакет в прочих линуксах.

Начинаем с Debian 7, и да, статически скомпилированный tar отказался нормально работать, хотя просто так вроде нормально запускается, ох уж этот Linux...
![]() |
![]() |
![]() |
Делать нечего, переключаюсь на встроенный в систему архиватор tar и устанавливаю, не хотелось, конечно, полагаться на встроенные в систему архиваторы, но tar вроде как довольно базовая программа, так что, думаю, ничего страшного не будет.
![]() |
![]() |
![]() |
Ну и сам OBS Studio 31 версии запускается и работает, и в выделенном домашнем каталоге ничего не добавилось, ибо нет драйверов в виртуальной машине, библиотеки от которых можно было бы скопировать.
![]() |
![]() |
![]() |
Ладно, пожалуй, пора заканчивать, наконец собрал установочный пакет, пришлось даже перевести Installer-SH в режим работы с tar.xz архивами вместо 7-Zip, ибо последний слишком неадекватно относится к «безопасности», да, это ухудшило степень сжатия, но всё равно лучше исходного формата распространения.
По традиции выкладываю созданный установочный пакет OBS Studio 31.0.3 в репозитории Chimbalix-Software-Catalog, вдруг кому-то пригодится.
https://github.com/Shedou/Chimbalix-Software-Catalog/releases/obs3103

По крайней мере, мне он точно пригодится, как минимум тем, что на его основе у меня появились идеи для расширения функционала Installer-SH. Ну а в работе даже оригинальный AppImage вариант весьма паршиво ведёт себя, например, не работает захват отдельных окон (Xcomposite), наверное, от вечно кривого Wayland набрались болячек, ну или типичная проблема контейнеризации, не знаю, как ещё это объяснить.

Да и ресурсоемкость отвратительная у AppImage варианта OBS Studio, ибо опять же, половину линукса утащили в контейнер, и работает оно вот так вот, как получается, моего i7-10875H, конечно, предостаточно в плане производительности, но с более слабыми процессорами уже могут возникнуть проблемы.
![]() |
![]() |
Так что, увы, вряд ли я буду использовать данную версию OBS Studio и не могу порекомендовать никому, но это был неплохой эксперимент, да и в случае крайней нужды, может быть, пригодится, всё же работает даже в старом Debian 7.
Может, я и создал перспективный способ распространения софта для Linux под названием Installer-SH, но, как показывает практика, это всего лишь способ распространения софта, он не может вправить руки в плечи линуксоидным разработчикам и заставить их по-человечески всё делать, хотя и может по рукам бить за символические ссылки с абсолютными путями...
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.

Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.

















































































Комментарии Правила