LINUX.ORG.RU

Бесплатная лицензия PVS-Studio для открытых проектов

 , , , ,


4

7

Разработчики PVS-Studio хотели бы помочь миру программного обеспечения лучше познакомиться с инструментами статического анализа кода и повысить его качество. Теперь PVS-Studio предоставляется бесплатного студентам в учебных целях, индивидуальным разработчикам и коллективам энтузиастов.

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

Решение было найдено интуитивно.
Что отличает корпоративные проекты от проектов энтузиастов? В корпоративных проектах меньше свободы и больше бюрократии. Вряд ли руководство Microsoft будет радо, если разработчик в коде MS Office напишет, что это его персональный проект. Этим надо воспользоваться и предлагать вносить в код правки, в которых упоминается PVS-Studio. Заодно код открытых проектов будет рекламировать PVS-Studio.

Бесплатная лицензия PVS-Studio

Внесите правки во все компилируемые файлы вашего проекта. Имеются в виду файлы с расширениями c, cc, cpp, cs и так далее. Заголовочные файлы менять не требуется.

Вы должны вписать в начало каждого файла две строки с комментарием (существует выбор из нескольких вариантов). Это своего рода плата за возможность бесплатного использования PVS-Studio.

Комментарии для студентов (академическая лицензия):

// This is a personal academic project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com

Комментарии для открытых бесплатных проектов:

// This is an open source non-commercial project. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com

Комментарии для индивидуальных разработчиков:

// This is an independent project of an individual developer. Dear PVS-Studio, please check it.
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com

Для Windows-разработчиков сценарий немного отличается.

Если в вашем проекте много файлов, можете воспользоваться вспомогательной утилитой. После указания комментария для вставки и каталога с кодом утилита рекурсивно обойдёт все файлы в папке и во вложенных папках, добавляя в файлы соответствующие комментарии. Скачать утилиту (вместе с исходным кодом) можно из репозитория на GitHub.

Некоторые разработчики могут сказать, что не хотят видеть в начале файла две строчки с комментарием, не относящимся к сути проекта. Это их право, и они могут просто не использовать анализатор. Или же они могут приобрести коммерческую лицензию и использовать её без ограничений. Авторы PVS-Studio рассматривают наличие этих комментариев как благодарность за предоставленную лицензию и заодно как дополнительную рекламу их продукта, и считают, что это честный обмен.

>>> Подробная статья на Хабре

Ответ на: комментарий от Vit

Бесплатная лицензия PVS-Studio для открытых проектов (комментарий)

Собственный коммент в качестве пруфа вашего искаженного мировосприятия. Сильно, че.

И вы конечно способны не только метанировать лужи, но и указать точную цитату, где я назвал ТС-я лжецом.

Бесплатная лицензия PVS-Studio для открытых проектов (комментарий)

Как-то вы совсем убого балаболить стали. Пока-пока!

А голова-то у вас совсем слабая.

andreyu ★★★★★ ()
Ответ на: комментарий от EvilFox

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

Вполне возможно.

andreyu ★★★★★ ()
Ответ на: комментарий от Andrey_Karpov_2009

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

Жесть.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

То есть кроме как опять пукать в воздух, дать ссылку где я написал что ТС лжец вы не можете. Остальное даже комментировать бесполезно.

Ай-ай-ай как нехорошо врать, когда всё записано. Впрочем, что взять с врунишки.

Vit ★★★★★ ()
Ответ на: комментарий от Vit

То есть кроме как опять пукать в воздух, дать ссылку где я написал что ТС лжец вы не можете. Остальное даже комментировать бесполезно.

Вы сильно стараетесь, что бы не газануть. Но по аватаре видно, что давление растет.

Ай-ай-ай как нехорошо врать, когда всё записано. Впрочем, что взять с врунишки.

Снова вам видятся вокруг вруны, у вас серьезный на это пунктик.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Что и требовалось доказать - вы пустозвон, который ничего по делу предъявить не в состоянии.

Vit ★★★★★ ()
Ответ на: комментарий от andreyu

Жесть.

Не нравятся условия — не пользуйся. Никто не принуждает. ^_^

i-rinat ★★★★★ ()

I like the idea!

Хорошая идея. Мне очень понравилось.

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

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

Я попробовал на небольшой программе, чтобы убедиться, что механизм работает. Пришлось умышленно добавить пяток очевидных ошибок, прежде чем часть из них обнаружилась. ;-)

Вот бы еще поддержку C# добавили в Linux-версию (у нас часть кода выполняется под 'mono').

mkborg ()
Ответ на: комментарий от i-rinat

Не нравятся условия — не пользуйся. Никто не принуждает. ^_^

Я об этом и толкую все дорогу.

andreyu ★★★★★ ()
Ответ на: комментарий от Vit

Что и требовалось доказать - вы пустозвон, который ничего по делу предъявить не в состоянии.

Вы не привели ни единого пруфа в свое оправдание, мои пруфы проигнорировали. Здравому человеку понятно, что пустозвон и трепло именно вы. А ваши попытки сделать сладко во рту с помощью повторения фразы «халва, халва, халва» выглядят жалко.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Уси-пуси, врушка по десятому кругу пошел метанировать. Ну да, аргументов нет, со ссылками обделались. Понимаю.

Vit ★★★★★ ()
Ответ на: комментарий от Vit

Уси-пуси, врушка по десятому кругу пошел метанировать. Ну да, аргументов нет, со ссылками обделались.
Понимаю.

Не льстите себе, вы оторвались от реальности и застряли в круговороте своего бреда.

andreyu ★★★★★ ()
Ответ на: комментарий от Andrey_Karpov_2009

О, я так посмотрю у вас пригорело что все вокруг могут за пять минут сваять скрипт добавления\удаления комментариев? Браво. Видимо шизофреник у вас в голове ваши же предыдущие сообщения не читает.

PPP328 ★★ ()
Ответ на: комментарий от Andrey_Karpov_2009

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

Ну раз так всё серьёзно - нельзя ли заодно позволить комментариям быть немного менее... э... религиозного содержания? Вот это вот - «Dear PVS-Studio...» - как-то уж очень похоже на воззвание к гневному языческому божку.

Думаю, что «сухой» вариант «This code was checked by PVS Studio, viva64.com...» выглядел бы более солидно и внушительно для ссылки на серьёзный статический анализатор. Ну или может, разрешить выбор из нескольких вариантов.

hobbit ★★★★★ ()
Ответ на: комментарий от EvilFox

С Dear конечно идея отвратная

Вот и я про то.

hobbit ★★★★★ ()
Ответ на: комментарий от PPP328

О, я так посмотрю у вас пригорело что все вокруг могут за пять минут сваять скрипт добавления\удаления комментариев? Браво. Видимо шизофреник у вас в голове ваши же предыдущие сообщения не читает.

В почте и на разных ресурсах мне этот вопрос задали уже раз 40. Отвечать каждый раз отдельно утомительно, а отмалчиваться странно. Поэтому решили написать этот текст. Вот и всё. Понятно, что он нас не защищает, но зато теперь есть законченный ответ: так делать нельзя.

Andrey_Karpov_2009 ()
Ответ на: комментарий от hobbit

Думаю, что «сухой» вариант «This code was checked by PVS Studio, viva64.com...» выглядел бы более солидно и внушительно для ссылки на серьёзный статический анализатор. Ну или может, разрешить выбор из нескольких вариантов.

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

Andrey_Karpov_2009 ()
Ответ на: комментарий от Andrey_Karpov_2009

Бесплатная лицензия PVS-Studio для открытых проектов (комментарий)

А про скрипты слышали? Скрипт который сам будет добавлять и удалять комментарии из кода можно написать, даже будучи полным нубом, где-то за 15 минут.

Пишите.

Бесплатная лицензия PVS-Studio для открытых проектов (комментарий)

А что мешает после проверки исправить найденные анализатором ошибки а комментарии удалить?

Ничто не мешает. Но в настоящей компании таким заниматься не будут. Плюс для них важно сопровождение продукта, а не возможность запускать какой-то модуль анализа.

Бесплатная лицензия PVS-Studio для открытых проектов (комментарий)

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

https://habrahabr.ru/company/pvs-studio/blog/316484/#comment_9938112

Я что-то не понял, вот, допустим, я очень корпоративный разработчик — кроме мук моей воспалённой совести мне что-то помешает держать ваши комментарии только в моей рабочей копии и автоматически удалять перед каждым коммитом?

Ничто не помешает. А раз Ваше рабочее время стоит так дешево, чтобы заниматься на работе фигнёй, то значит компания где Вы работаете не является нашим потенциальным клиентом. :)

https://habrahabr.ru/company/pvs-studio/blog/316484/#comment_9938234

Вот я и думаю: по-замыслу, вроде как, вы пытаетесь создать мне достаточно неудобств, чтобы побудить не заниматься на работе фигнёй и купить уже лицензию. А по-факту, скрипт, который добавляет-удаляет всё, что нужно, я сваяю левой ногой минут за пять, а потом повешу pre-commit hook-ом (или как там оно называется), и мне даже хоткей никакой нажимать не придётся.

Делайте. Я же поставлю свечку, чтобы однажды скрипт сглючил и комментарии попали в систему контроля версий. За что кого-то накажут. :)

Ну я и говорю, либо шизофрения, либо балабол

PPP328 ★★ ()
Ответ на: комментарий от PPP328

Ну я и говорю, либо шизофрения, либо балабол

Ну кто тут ещё балабол. Это ведь надо не полениться собрать столько цитат... :)

А у нас есть занятия полезнее. Вот например, в очередной раз делаем Linux Kernel чуть лучше и заодно PVS-Studio тестируем: Тестируем Linux-версию PVS-Studio на Linux Kernel.

Andrey_Karpov_2009 ()
Ответ на: комментарий от Andrey_Karpov_2009

Вот я удивляюсь сообществу - им по сути дали возможность бесплатно пользоваться хорошим инструментом с небольшими реверансами в вашу сторону - а стону стоит как будто вы душу продавать заставляете :)
По крайней мере от меня большое вам спасибо :)

Shtirlits ()
Ответ на: комментарий от Andrey_Karpov_2009

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

Угу. А поскольку у меня проект не только бесплатный, но и открытый, я, скорее всего, склонюсь к третьему варианту - осилю-таки Coverity Scan, он таких требований не выдвигает.

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

hobbit ★★★★★ ()

Как предложение. А почему бы не сделать например так: текст в комментариях пусть будет обязательным вида «This code was checked by PVS Studio, viva64.com...», как тут уже подсказали. И распространяться эта бесплатная версия будет как 2-3 версии назад от актуальной.

Если не ошибаюсь, вайн работает именно так. Есть платный кроссовер, а есть вайн, куда попадает код из кроссовера через некоторое время.

Просто как идея.

В целом хочу сказать, что хорошее дело делаете, но всегда найдутся недовольные. ИЧСХ, немногие из них написали больше, чем hello world.

mir-inoy ()

PVS-Studio предоставляется бесплатного студентам в учебных целях

nexfwall ★★★★ ()

А Н Д Р Е Й, С П А С И Б О В А М ! ! !

polozz ()

что помешает мне форкнуть проект, проверить анализатором, выполняя условия спама в комменты(я не против, ваш продукт, ваши условия) а потом, в оригинальном проекте исправить найденные баги, не добавляя никаких комментариев?

LiBer ★★★ ()
Ответ на: комментарий от LiBer

Отвечали уже. Ничего. Если только совесть :-)

Aceler ★★★★★ ()

А можно вопрос Andrey_Karpov_2009? Сколько ваших платных клиентов имеют публичный репозиторий на GitHub и при этом не используют ваш продукт для каких-то других, закрытых репозиториев? Вы пробовали оценить?

Я к тому, что, возможно, открытые «коммерческие» проекты - всё равно не ваши потенциальные клиенты? А так хоть известность заработаете...

Pythagoras ★★ ()
Последнее исправление: Pythagoras (всего исправлений: 1)
Ответ на: комментарий от Lavos

Существует ли некий adblock для исходников?

# This is an independent project of an individual developer. Dear PVS-Studio, please check it.
# PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
git_clone() {
    git clone $@
    find . -type f -name '*.[chp]' -exec sed -i '/PVS-Studio/d' {} \;
}
evilface ★★ ()
Последнее исправление: evilface (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.