Как разработать кроссплатформенное приложение не утонув в помойке дистрибутивов Linux: Решение
Как решить проблему (реальность)
Начну без лишних предисловий.
реклама
В первой части я выдвинул ряд условий которые приложение должно соблюдать по возможности:
1) Приложение обязано работать без возни с терминалом, чтобы его мог запустить обычный пользователь без лишних телодвижений, в идеале должно работать как в Windows, но в реальности это невозможно, потому необходимо свести к минимуму всевозможные телодвижения конечного пользователя.
2) Приложение обязано работать в любом дистрибутиве Linux насколько это возможно.
реклама
3) Приложение не должно иметь лишних зависимостей, просто чтобы в один момент не утонуло в болоте зависимостей.
4) Приложение не должно гадить в системе пользователя и разводить помойку в труднодоступных местах, приложение обязано все необходимое хранить рядом с исполняемым файлом, чтобы пользователь не ломал голову при поиске файлов конфигурации если возникнет проблема (баг) с приложением.
5) Приложение обязано сохранять своё "лицо" в каком бы дистрибутиве его не запустили, иначе говоря внешний вид приложения не должен зависеть от дистрибутива Linux.
Настало время приступить к реализации приложения, и посмотреть, сможет ли моё приложение удовлетворить выдвинутый ряд условий.
реклама
Конечно, я начал работу над приложением еще до написания статьи, но чтобы не ломать порядок я буду все рассказывать и показывать последовательно.
Так каким образом я собрался решать проблему распространения и запуска приложений в Linux дистрибутивах?
Решение проблемы есть, достаточно написать приложение в виде бинарного исполняемого файла, и все необходимое впихнуть в этот файл, но я очень сомневаюсь что разработчики возьмут себя за голову и побегут писать по-настоящему адекватный софт без лишних зависимостей и отбросов файлов конфигураций в систему пользователя...
Да и проблема "лица" приложений не исчезает, ведь приложение нужно будет писать совместимым с целой помойкой дистрибутивов Linux, что в принципе невозможно, ибо все время разработки уйдет на поддержку совместимости с дистрибутивами.
реклама
Можно использовать фреймворки вроде Qt, это сильно облегчит разработку, но это не вариант, ибо у каждого пользователя может быть немного "другой" Qt и настройки, что может легко поломать приложение.
Все же я делаю приложение не для Windows, где все по полочкам и стандартно, а если что-то сломалось то Microsoft пробует это исправлять... Нет, Linux суров и беспощаден, потому нужно разрабатывать независимое и действительно свободное ПО, а не мусор, который падает от любого дуновения ветра в болоте зависимостей.
...
Так вот, однажды сидя за разработкой игры в GODOT я вспомнил один забавный факт из своего прошлого...
Когда изучал C++ и писал софт на этом языке, я однажды использовал OpenGL для отрисовки рабочей зоны приложения, хоть программирование на C++ я давно забросил, но вот опыт и знания никуда не исчезли, хотя и устарели "немного".
И тут я понял, ведь GODOT позволяет разрабатывать кроссплатформенные игры и скомпилированные исполняемые файлы прекрасно работают везде, так почему бы не тряхнуть стариной и не написать приложение интерфейс которого будет нарисован при помощи OpenGL?
Звучит безумно, использовать игровой движок для написания программы... Но я неоднократно примечал в своих статьях, игра это и есть программа, так что безумного в том, чтобы разработать не игру, а программу используя ПО предназначенное для разработки игр?
По факту разработчики GODOT Engine сделали то что нужно в Linux, по сути независимую среду разработки которая создает независимые исполняемые файлы, чтобы пользователю не приходилось ломать голову и клавиатуру в попытках запустить типичное линуксоидное приложение.
Ведь "игра" скомпилированная при помощи GODOT Engine требует от системы поддержку OpenGL и базового функционала что обязан быть абсолютно везде, по сути движок просто вызывает OpenGL окно и работает, таким образом у разработчика есть безграничные возможности оформления приложения, ведь он может сделать что угодно, хоть в 3D с шейдерами.
Кто-то заикнется про потерю кастомизации? А она разве есть в линуксах? Что может обычный пользователь кастомизировать в том же Xfce? Да ничего толком, меньше чем даже в Windows 7...
При желании разработчик может создать систему скинов, и она уже может быть многократно лучше всего что предоставляют дистрибутивы Linux своими DE, ведь разработчик не ограничен обычными окнами, он может написать шейдеры для эффектов которые в принципе невозможно реализовать в обычном окне.
А что до потребления ресурсов? А разве линуксоиды уже не положили здоровенный болт на этот нюанс выпиливая поддержку x86 и выкидывая всякие Flatpak? Так какая разница, качать приложение в виде Flatpak где 1 МБ приложение + 999 МБ зависимостей, или качать исполняемый пакет изначально без зависимостей весом 999 МБ, который при этом не вынесет мозг пользователю как всевозможные DEB/AppImage/Flatpak и прочий мусор?
Да, в моем случае каждое приложение будет вызывать OpenGL окно, а это занимает память на видеокарте, но разве это сейчас проблема? Или в линуксах драйвер не осилит "аппаратное ускорение" для десятка приложений одновременно? Так это проблема не пользователя или разработчика, это проблема операционной системы тогда.
В любом случае GODOT Engine позволяет написать действительно независимые приложения/игры, которые может запустить обычный пользователь без особых проблем, и оно будет работать практически везде, за что огромное уважение с моей стороны разработчикам GODOT Engine: ( https://godotengine.org/ - https://github.com/godotengine/godot ).
Пожалуй пора перейти к реализации.
Первые реализации
Первая моя реализация выглядит вот так, и название ему "Chi Calculator":
Да, это ужасно, но оно работает, со временем я продолжал писать код и экспериментировать:
И вот мое приложение работает не только в среде Windows, но и в Linux:
Формирование инструментов для разработки и сборки
Дальше я решил выпустить свой "калькулятор" и под Android, ох и повозился же я пока собрал набор инструментов необходимый, чтобы скомпилировать под Android, линуксоидность во всей красе...
С одной стороны Google молодцы, выпустили Android SDK в виде установочного пакета жирного, якобы можно установить и использовать! Но нет, скачать установочный пакет мало, нужно еще выкачать тонну зависимостей которые по факту должны были идти вместе с самим SDK.
Вот за что я ненавижу дистрибутивы Linux в том виде, в котором они существуют, утопает в зависимостях что скармливают строго через репозитории в интернете, а что если эти репозитории будут скомпрометированы или недоступны, а человеку нужны эти инструменты? Как ему быть без адекватных установочных пакетов в запасе которые бы содержали в себе все самое необходимое? И мне еще будут что-то рассказывать как в линуксах все прекрасно и никаких проблем...
Хотя сейчас я не в среде Linux, я в среде Windows, но это болото зависимостей через интернет даже в среду Windows умудрились затащить, отвратительно.
Так или иначе я сформировал необходимый пакет для разработки, ибо я предоставляю исходный код своего приложения, и чтобы пользователи не проходили через мракобесие я сформировал архив с необходимыми инструментами.
В архиве есть сам GODOT Engine v3.5.1 (Windows/Linux), RCEDIT (Windows/Sources), Android SDK (Windows).
Да, текущий архив преимущественно будет работать только в среде Windows, ибо Android SDK у меня для Windows, пользователям Linux дистрибутивов нужно будет сосать зависимости самим, но в будущем я скорее всего сформирую такой пакет независимой разработки и для Linux.
Кто-то скажет что такой пакет безумие и вообще не нужно было делать, но извините, я предоставил инструменты как единое целое, разве это плохо? Разве плохо когда заинтересованный моим проектом разработчик может в два клика скачать и настроить среду разработки?
Или тонуть в зависимостях и "404 Not Found" это истинный путь линуксоидов? Когда человек заинтересовался проектом, а сделать ничего не может просто потому что репозиторий с инструментами потерялся, или в репозиториях все обновилось и оно больше не работает как положено.
Мне не нужны такие "сюрпризы", я не хочу тонуть в болоте зависимостей и тотально зависеть от доступа к интернету, в том числе от "правильности" пакетов в репозиториях, и не собираюсь плясать бесконечно перерабатывая свой проект просто потому что инструменты изменились и больше не работают со старым исходным кодом.
Текущая версия 1.2
Теперь поговорим про текущую версию "калькулятора", на которой собственно я остановился, чтобы сформировать пакет инструментов, скачать образы различных дистрибутивов Linux для тестирования, и прочих подготовительных работ.
Собственно есть и репозиторий: ( https://github.com/Shedou/Chi-Calculator )
Прямо сейчас приложение состоит из нескольких кнопок и одного скрипта, моя цель написать не супер инженерный калькулятор, моя цель написать приложение которое будет без проблем работать, и я смогу его свободно распространять не утопая в болоте зависимостей, а пользователь сможет его сохранить на USB накопитель и где угодно без лишних проблем запустить.
Так как разрабатывая приложение я использую движок предназначенный для разработки игр, само собой нужно подумать об оптимизации, никому не нужно, чтобы приложение постоянно грузило видеокарту и процессор, это плохо, потому настраиваем немного проект.
Сейчас у меня настроен экспорт для Windows (x32/x64), Linux (x32/x64), Android (ARMv7, ARMv8, x86, x86_64).
Конечно, если вы скачаете GODOT с проектом и сразу попытаетесь скомпилировать, то у вас ничего не выйдет, вам нужны будут инструменты которые я любезно собрал в один архив... Только не забывайте указывать путь к инструментам в настройках GODOT и проекта.
По итогу мой "калькулятор" работает как в среде Windows, так и в среде Linux, даже в Android.
Да, здесь для демонстрации я взял устаревшую версию "калькулятора", но суть это не меняет.
А вот и калькулятор на старой Lenovo P70-A с Android 5.1.1, зря я не прихватил с собой старый GT-i8552 на четвертом андроиде...
Хотя есть человек который проверил в Android 4.4.2 мой "калькулятор", и оно работает:
И на этом пока все, приложение работает, достаточно запустить исполняемый файл.
Кое-что забыл...
Раз уж пишу статью, то почему бы не указать ссылку на свой блог?
Создаю "Link Button", указываю название, и создаю "связь" с главным скриптом.
В скрипте добавляю всего одну строчку со ссылкой, повторяю для ссылки на GitHub проекта, а дальше просто компилирую версию 1.3...
Так как я сейчас работаю используя мобильный интернет, а безлимитный тариф закончился (расходую трафик), то не вижу смысла компилировать все возможные версии приложения:
Как оно теперь работает? Легко и просто, вот пример на Android 5.1.1, ссылки работают как положено, правда смартфон не подключен к сети, потому загрузить сайт не выйдет.
-
--
---
Тестирование приложения в разных дистрибутивах
У меня был безлимитный интернет еще недавно, но безлимит закончился и сейчас я использую трафик.
Так вот, пока у меня был безлимитный трафик я скачал пачку разнообразных дистрибутивов, вдобавок отсортировать весь этот зоопарк и докинул дистрибутивы которые у меня уже были в наличии, итого это все весит целых 162 гигабайта...
Да, я собрал не очень большой зоопарк, но этого хватит пока что.
Меня особенно взбесили разработчики Manjaro Linux, они бросили поддержку x86, но они бросили не только x86, они бросили пользователей которым нужен x86 дистрибутив, просто негде скачать старые версии Manjaro, я так и не смог найти в интернете нужный дистрибутив...
Вот она, "сила" репозиториев и зависимости от доступа к интернету, разработчики просто кинули пользователей удалив старые версии дистрибутивов, и потом ищи как хочешь, отвратительная особенность свойственная преимущественно дистрибутивам Linux.
Microsoft тоже неохотно предоставляет образы старых систем, но Windows популярна и скачать оригинальный образ можно на любом торренте, а что делать в помойке дистрибутивов, популярность которых это 2.5 человека...
Ладно, дистрибутивы я скачал, теперь их установить нужно... VirtualBox конечно мне поможет в этом, но есть проблема, мне нужно очень много места для виртуальных машин, а SSD у меня уже заполнены...
Я как-то писал статью про свой компактный ПК и меня упрекали, мол, купил бы я себе ноутбук да не возился с маленьким системным блоком, давайте, поговорите мне тут, как я в ноутбук запихну 4 SATA накопителя + NVMe? Пихать в ноутбук один массивный NVMe SSD и сосать лапу если он внезапно выйдет из строя? Спасибо, обойдусь как-нибудь компактным ПК, я не камикадзе чтобы все хранить в одном накопителе.
В любом случае даже если я и закажу новый SSD под виртуальные машины, это будет явно не быстро, потому нужно удалить лишнее, или перенести часть на HDD.
Пока освобождаю SSD перенося данные на HDD можно удалить лишние виртуальные машины:
А дальше я буду создавать виртуальные машины для каждого дистрибутива что меня заинтересует.
Да, это все рутина, но как я докажу что моё приложение действительно работает и не зависит от конкретных дистрибутивов Linux?
И вот я установил всего две операционные системы в виртуальные машины, "debian-live-11.6.0-amd64-xfce+nonfree" и "debian-live-11.6.0-i386-kde+nonfree", как думаете, все прекрасно работает? Прямо как вскрикивают "не фанаты"?
А вот обломитесь! Я хочу увеличить разрешение экрана, ибо 800x600 ну совсем неприлично выглядит для моего монитора... Иду в настройки, пытаюсь изменить разрешение, в Debian Xfce изменилось нормально, а вот Debian KDE наотрез не желает менять разрешение экрана, на мгновение изменяет (первый скриншот) и сразу же откатывает до 800x600 (второй скриншот).
Linux дистрибутивы прекрасны? Никаких проблем? Все работает у всех идеально? Да? Рассказывайте сказки, вдруг поверит кто-нибудь... Ладно, делать нечего, буду некоторые виртуальные машины держать в разрешении 800x600...
С Fedora 37-1.7 тоже не задалось... Она явно не очень хорошо дружит с разрешением 800x600, а еще Fedora сама установила дополнения VirtualBox (кто её просил?), в итоге растянув окно виртуальной машины и Fedora растянулась, правда вот лучше бы она этого не делала...
Через настройки дистрибутива установил стандартное разрешение 1024x768, но это не сильно помогло, все же это сам интерфейс системы кривой такой... Я уже боюсь продолжать установку остальных дистрибутивов, какие еще "грабли" меня ждут...
Далее я "осуслился" в зависимости, я не могу дать доступ к интернету, у меня всего 8 ГБ трафика, и не хотелось бы его потерять просто на установке OpenSUSE...
Немного поковырявшись я таки смог начать установку, операционная система при запуске накатила дополнения VirtualBox, вот кто её просил? Ну и ради интереса проверил разрешение экрана, оно работает здесь, вероятно не без помощи дополнений установленных без моего разрешения.
Особое внимание заслуживают дистрибутивы "gentoo livegui-amd64-20230205T170201Z.iso" и "slackware64-live-15.0.iso", они заслуживают почётное место самых странных дистрибутивов, ведь Gentoo невозможно установить из Live образа, а Slackware просто закрыт паролем...
Эй, разработчики! Зачем это было создано? У вас какой-то синдром неведомый, что заставляет разрабатывать такие вещи?
Конечно, если посмотреть внимательнее то пароль вполне можно найти, но вашу кочергу... На рабочем столе есть ярлык "Install Slackware", и этот ярлык открылся от одиночного нажатия по нему, похоже будет "весело"...
В общем установка вполне неплохо прошла, я ожидал худшего, но вышло неплохо, а вот запустить дистрибутив не вышло... Просто черный экран после авторизации.
В итоге потрачено пол дня, а из пригодного установилось и работает только Debian, Fedora и OpenSUSE...
Что за безумием я занимаюсь вообще в этой статье... Но я еще установил Simply Linux 10.1, установщик конечно не идеален, но он хотя бы визуально не угнетает, все просто и понятно сделано, у меня совершенно не возникло проблем при установке, будто устанавливаю Windows, только лучше...
Система загрузилась не спрашивая логин/пароль, точно как я указал при установке, пока меня очень радует дистрибутив, не может ведь быть все настолько хорошо...
И да, открыв ярлык на рабочем столе "Simply Linux 10.1" меня попросили задать пароль для связки ключей, похоже это браузер, но тут ничего плохого нет в этом, система сама предлагает сделать что нужно, именно так должна работать операционная система.
А вот дальше меня ждал "сюрприз", браузер криво работает, и причина этому скорее всего VirtualBox со своими кривыми драйверами видеокарты...
В остальном я не заметил явных проблем, даже окна можно растягивать без проблем несмотря на окружение Xfce, разработчики дистрибутива очень хорошо поработали над мелочами, в той же Xubuntu просто нереально растянуть окно, ибо границу в 1 пиксель крайне тяжело "словить" курсором.
Этот дистрибутив определенно заслужил "мини обзор" в этом разделе статьи, даже иконки в проводнике нормально отображены, нет никаких громадных зазоров, сами иконки легко можно различить просто окинув взглядом.
Пожалуй к этому дистрибутивы я присмотрюсь серьезнее, когда будет время, ибо первые впечатления пока что хорошие.
Еще отмечу Endeavour OS, тоже на удивление неплохой установщик был, только вот в системе мне постоянно вылазят навязчивые уведомления, что нет доступа к интернету... Впрочем, сойдет, оно хотя бы работает.
Думал я устанавливать Manjaro еще, но пожалуй не буду, я её немного боюсь, как бы не сломалась случайно от дуновения ветра...
Пора бы сказать "СТОП", но я хочу еще установить ROSA Linux (ROSA.FRESH.LXQT.12.2.i686.iso), и знаете, меня опять порадовал установщик.
Он не очень простой, но он хорош собой, все необходимое прямо перед глазами, и самое главное оно сопровождено подсказками, но есть и минус, полноценная справка зависит от интернета.
Пока что все неплохо, даже сделали "уголок" как в Windows для адекватного и удобного растяжения окон, реально жирный плюс разработчикам интерфейса за такую "мелочь", но монотонные значки в проводнике конечно выглядят не очень разборчиво.
Но чем действительно меня удивил этот дистрибутив, так это "выключением", здесь не напрягают спрашивая дважды "а хочешь ли ты выключить, или может что-то другое сделать?"...
Вот серьезно, я похож на идиота когда нажимаю кнопку "выключить"? Пользователь нажимает кнопку "выключить", так на кой хрен ему предлагают целый набор кнопок подразумевая "а может все же перезагрузить, или выйти из системы..."? Вот этого недостатка ROSA Linux (ROSA.FRESH.LXQT.12.2.i686.iso) не имеет, и за это очередной плюс разработчикам.
Все, пожалуй хватит дистрибутивов Linux... Иначе я до утра буду сидеть за ПК...
Я собрал два 32 разрядных дистрибутива, и пять 64 разрядных, и постарался чтобы были разные графические интерфейсы у систем, чтобы наверняка все поломалось что только может при обычной разработке софта под Linux дистрибутивы.
Конечно же я сделаю резервную копию виртуальных машин, еще не хватало чтобы один из дистрибутивов самоуничтожился случайно без резервной копии...
Естественно я использую 7-Zip, 256 МБ словарь чтобы эффективнее сжимало, блок по размеру файла чтобы была возможность быстро распаковать один единственный файл из архива не распаковывая его полностью, ну и слежу чтобы не слишком много памяти это занимало, очень жаль что нет такого функционального интерфейса в дистрибутивах Linux.
Да, архивация задача не из простых, у меня даже браузер начал слегка подтормаживать...
В итоге резервные копии виртуальных машин с установленными дистрибутивами весят меньше чем исходные ISO образы операционных систем, теперь в случае проблем я смогу легко восстановить исходную версию виртуальных машин.
Мне не нужны системы контроля версий в данном случае, потому отправить все в архивы самый оптимальный вариант для меня.
Так вот, надеюсь никто не забыл про что вообще та статья была?
Во всех дистрибутивах мой "калькулятор" прекрасно заработал и сохранил своё "лицо" в какой бы обстановке он не находился, причем в некоторых дистрибутивах заработала как x86 версия, так и x64 одновременно.
Конечно я переборщил немного, 7 дистрибутивов сложно разложить не перекрывая "соседей" имея монитор разрешением всего 2560x1440, но это более чем наглядно демонстрирует результат.
Заключение
Выполнил ли я ранее поставленные условия? Очень даже выполнил.
Мой "калькулятор" работает в среде Windows (само собой), он работает даже в среде Android 4.4.2 и Android 5.1.1, он работает в разных дистрибутивах Linux, даже тогда, когда браузер в дистрибутиве работает неправильно по вине кривого драйвера видеокарты VirtualBox, но это оказалось не проблема для моего приложения.
Причем важно заметить, дистрибутивы Linux я устанавливал без доступа к интернету, как минимум потому что сейчас у меня мобильный интернет на трафике, и трафика не очень то много, но это не проблема для "калькулятора", ведь его один раз скачал и скопировал хоть на десяток разных ПК.
Не нужно насиловать репозитории скачивая одно приложение дважды на несколько систем...
Ранее я как-то сказал:
"Сейчас дистрибутивы Linux не способны стать в один уровень с Windows по многим причинам, и одну из таких причин я решил устранить сам, ведь на сообщество Linux надежд больше нет, более 20 лет безрезультатно месить болото зависимостей даже не догнав Windows 98 по некоторому базовому функционалу... Это просто... Я не знаю как это назвать без ругани...
Зачем вообще создают дистрибутивы Linux если их невозможно использовать адекватно, обычный пользователь постоянно обретает бесконечные проблемы которых быть в принципе не должно...
Так или иначе "подослать соломку под себя на будущее" не единственная причина, у меня появился интерес, смогу ли я решить проблему, которую целое сообщество "крайне умных и опытных" за несколько десятилетий не смогло решить бесконечно держась за болото зависимостей, а еще у меня просто полно времени сейчас."
Так вот, используя GODOT Engine я буквально за несколько дней решил одну из самых серьезных проблем дистрибутивов Linux, проблему распространения и запуска софта.
Да, мой "калькулятор" по факту мусор, но этот мусор работает везде, и сохраняет свое "лицо" в каком бы дерьме он не находился, а может ли так какой-нибудь Pencil Project? Сейчас проверим, даже трафик не пожалею...
Пока это приложение качалось я уже был готов признать что был не прав, и DEB пакеты очень даже годная штука, но чудес не случилось...
Простое открытие пакета запускает архиватор.
В списке приложений я нашел потенциально полезную программу, судя по названию "Synaptic Package Manager" уж точно должен что-то сделать, но и тут облом...
Ну ладно, полез я в терминал, а в терминале система показывает мне (пользователю) средний палец...
Ладно, иду в интернет "гуглить", возвращаюсь в терминал, чтобы отомстить за прошлое "поражение", но и тут облом...
В общем ничего не изменилось, все такое же ущербное как и было, время потратил? Потратил, результат получил? Не получил, и потом линуксоиды будут что-то заливать про кривые руки и прочий бред всевозможный, лишь бы защитить свою кривую "любимицу".
А теперь посмотрим на сводку результатов которые я достиг за несколько дней:
Из таблицы видно, что моё приложение работает практически везде, без доступа к интернету, хотя в некоторых дистрибутивах Linux нужно дать права на запуск как приложению, но это не сложная операция, и вполне может сделать обычный пользователь.
Еще можно заметить последствия отказа от x86, многие дистрибутивы просто не существуют больше в виде x32, а ряд x64 дистрибутивов просто не могут запустить 32 разрядное приложение, только Simply Linux 10.1 смог запустить x32 и x64 версию приложения одновременно.
А вот Debian 11.6.0 x64 разочаровал, он не смог запустить x32 версию приложения, хотя и есть x32 версия дистрибутива.
Единственный мой просчет это дистрибутив ROSA Linux, стоило установить еще x64 версию дистрибутива, вдруг она смогла бы запустить x32 версию приложения.
А теперь дружки пирожки попробуйте сказать еще раз все что вы сказали в предыдущей части статьи:
Давайте, отрицайте факты, а я посмеюсь продолжая свою работу дальше.
Стыд и позор, за десятилетия не решить проблему зависимостей, распространения и запуска приложений в дистрибутивах, когда я, криворукий и тупой (по мнению линуксоидов) эту проблему "решил" буквально за несколько дней, и таки создал приложение которое можно без проблем распространять и запускать...
И да, еще раз повторю, огромное уважение от меня разработчикам GODOT Engine, именно таким должен быть софт для Linux: ( https://godotengine.org/ - https://github.com/godotengine/godot ).
Репозиторий приложения Chi Calculator: ( https://github.com/Shedou/Chi-Calculator ).
На этом я закончу статью, но не работу.
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.
Лента материалов
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Комментарии Правила