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 рассматривают наличие этих комментариев как благодарность за предоставленную лицензию и заодно как дополнительную рекламу их продукта, и считают, что это честный обмен.

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



Проверено: JB ()
Последнее исправление: sudopacman (всего исправлений: 10)

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

Я, в отличии от вас, принял условия использования анализатора и попробовал его в деле. Хоть он и оказался бесполезен на моем проекте...

На закрытом проекте. Оказался бесполезен, поэтому добавленные строчки после проверки были удалены.

Что ж ты тут распинаешься-то...

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

Сохранить plog файл и продолжить работать с ним?

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

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

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

Быть может поможет Rebuild? Т.е. полная перепроверка. Я просто пока не понимаю суть проблемы.

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

Вы сказали, что ТС лжец, но доказательств не предоставили.

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

Я, в отличии от вас, принял условия использования анализатора и попробовал его в деле. Хоть он и оказался бесполезен на моем проекте, но это не дает мне права нести всякую ахинею на его счет и счет ТСа.

Вы проделали некоторые действия, не имеющие отношения к сути обсуждаемого вопроса. То, какие вам это дает и не дает права тоже отношения к сути вопроса не имеет.

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

На закрытом проекте.

И?

Оказался бесполезен, поэтому добавленные строчки после проверки были удалены.

Попробуйте закончить свою мысль.

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

Суть я объяснил предельно четко - манипуляция с терминами опенсорс, и указал где именно и какие.

Манипуляци != ложь.

Вам просто не нравится, что подобное называют ложью. Но это не моя печаль.

Вы может белое называть черным, ваше право. Но по факту белое называют белым.

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

Вы может белое называть черным, ваше право.

Как и ваше право называть ложь манипуляциями :)

Но по факту белое называют белым.

Ваше личное мнение не является каким-то особенным фактом. Хотя вы можете например поспорить со мной на 100 баксов, и сделать опрос какая терминология подходит больше к первому посту :)

Vit ★★★★★
()

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

НЛП не работает, просто поверьте на слово. Да и нянька не особо нужна - надеюсь дорастете до релиза v10.2

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

Как и ваше право называть ложь манипуляциями :)

Я ничего не говорил про манипуляции. Это вы то про какую-то ложь говорите, то о каких-то манипуляциях.

Ваше личное мнение не является каким-то особенным фактом.

Причем тут мое мнение?

Хотя вы можете например поспорить со мной на 100 баксов, и сделать опрос какая терминология подходит больше к первому посту :)

Вы понимаете, о чем говорите?

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

Это вы то про какую-то ложь говорите, то о каких-то манипуляциях.

У вас просто очень избирательная способность понимать слова русского языка. И такое тоже бывает.

Вы понимаете, о чем говорите?

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

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

Неужели никто не покупает?

Денег мало не бывает. У них вон штат расширился.
Суть со строчками понятна, вставляют в каждый файл чтоб гарантировано засветиться, ибо на другие побочные файлы смотрят мало. Единственно для открытых проектов сошёл бы баннер в README.MD — он будет при открытии хранилища всегда на виду, можно сделать в меру заметную картинку-ссылку.
С Dear конечно идея отвратная и сойдёт только для разжигания чёрного пиара.

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

Быть может поможет Rebuild? Т.е. полная перепроверка. Я просто пока не понимаю суть проблемы.

да, rebuild помогает, но это занимает долгое время - в этом суть

итоговый юзкейс видится так:
1. начальный полный ребилд, создан лог
2. смотрим лог, чтото правим в исходниках
3. делаем быстрый «добилд» и анализ
4. в логе теперь исправленные ошибки отсутствуют, неисправленные присутствуют

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

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

Проприетарность конечного продукта это одно, а инструмента — другое. Причину того, почему инструменты необходимо иметь открытыми, я уже писал. Тем более, когда руководство компании не выглядят людьми, с которыми хотелось бы сотрудничать — мало ли что они выкинут.

Deleted
()

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

Такого кретинизма я ещё не встречал. Пэвэсэ студия продолжает удивлять своими высерами.

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

Да. Предложил реальный способ показать на практике что вы правы и что ваши слова чего-то стоят.

«100% посетителей нашего сайта подтвердили, что они пользуются сетью интернет».

Я всегда стараюсь предлагать только конструктивные вещи, в отличие от вас.

Пока ваши старания успеха не достигли. За идею такого опроса вы достойны быть на стене почетных идиотов.

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

Вы эту мантру следователю рассказывайте.

Ты настолько дрова, что это просто стыдно. Для справки: «воровство» и «нелицензионное копирование» это разные статьи УК, так что следователь и так в курсе.

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

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

Но это не моя беда. Главное что остальным всё понятно, а негодование одного фанбоя я как-нибудь переживу.

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

Ты настолько дрова, что это просто стыдно.

Это вы своему папе Карло расскажите.

Для справки: «воровство» и «нелицензионное копирование» это разные статьи УК, так что следователь и так в курсе.

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

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

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

От того, что вы сто раз скажете слово халва, слаще не станет. Вы как были балаболом, так им и остаетесь. Видимо жизнь еще не научила вас отвечать за свои слова.

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

Хо-хо... и это пишет трепло которому даже денег предлагали заработать. Фанбои такие фанбои...

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

Хо-хо... и это пишет трепло

Если пруфов нет, значит трепло вы.

которому даже денег предлагали заработать.

Опять пруфов нет? Значит вы трепло и балабол.

Фанбои такие фанбои...

Из уст балабола это звучит так емко.

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

Это ваш единственный аргумент в свою защиту?

Защиту от чего? Безграмотных идиотов в интернете, путающих афедрон с фалангой и нелицензионное копирование с воровством?

Когда ваша жопа окажется в обезьяннике

Свои гомозоофантазии излагай маководам - может хоть им это будет интересно.

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

Приватные репозитории для открытых проектов? Я пропустил какую-то новую гиковскую фишку в разработке?

Ну так же большинство серъёзного опенсорса делается, нет?

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

В багтрекер постить не дают - это да. А так чтобы массово сорцы закрывали - не сталкивался. Обычно хотя бы зеркало на чтение выставляют.

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

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

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

Не. Я о другом. Ну вот есть какой-нибудь фурифокс.

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

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

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

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

Можешь в CI добавить скриптик, который дописывает нужны строки.

aspotashev ★★★
()

// Dear PVS please answer my question.

Дорогой PVS, я воспользовался вашей программой на локальном форке одного интересующего меня проекта и сделал все в соответствии с условиями предоставления бесплатной лицензии. Так же поскольку использование вашего продукта принесло результаты (хотя я и ожидал больших), я хотел бы добавить исправления и в исправления отметить, что баг был обнаружен PVS. Несмотря на отношение к вашему маркетингу это честно. Однако как мне это сделать, если я отправлю пул реквест с комментарием о благодарности, это будет странно, т.к. для самого открытого проекта условия свободной лицензии не выполнены. Поскольку там нету (и никогда не будет) требуемого заголовка. Таким образом вы поставили меня в очень неудобное положение, и перед моральным выбором, с одной стороны я выполнил условия лицензии и хочу отблагодарить хотя бы рекламой в коммите, с другой для проекта это будет выглядеть как нарушение лицензии. Что делать, Бен?! Может обратиться к вам официально с моего noname email-а с запросом на разрешение единичного использования вашего продукта, если в коммит комментарии будет указано, чем я воспользовался для поиска бага.

CC Andrey_Karpov_2009.

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

Кстати на удивление, когда я принял условия, на своем форке весьма специфического опенсорс проекта, PVS отработал там, где я не смог заставить работать clang-analyzer. Результат показал, что смысла использовать на постоянной основе PVS нету, но несколько вещей, которые стоит поправить он нашел. А теперь получается так, что я не могу нормально законтрибьютить исправления и указать там чем были найдены баги, ибо потому что такая лицензия

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

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

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

Спасибо, это сильно все упрощает.

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

Еще вопрос, куда-нибудь стоит писать, про ошибочные срабатывания с примерами? (Но минимальный пример мне будет лень делать)

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

Еще вопрос, куда-нибудь стоит писать, про ошибочные срабатывания с примерами? (Но минимальный пример мне будет лень делать)

Писать можно и нужно на support [@] viva64.com. Но если нет простого примера, то прошу этого не делать, если это только не совсем что-то эпическое. Прошу пожалеть нас. Без короткого примера уходит слишком много времени. А если кто-то присылает скриншот редактора, то хочется вообще сразу его в корзину отправить, не перенабирая фрагмент текста и пытаясь угадать, что хотел сказать автор картинкой-посланием.

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

Да не, не эпическое. Просто иногда ругается на то, что не void функция не возвращает значение если в ветке, которая не выполняется никогда стоит функция логгирующая, что все плохо и зовущая exit().

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

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

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

Пригорает, врунишка?

Вначале вы назвали ТСа лжецом. Вместо пруфов привели свое мироощущение. Потом вы назвали меня врунишкой. И снова никаких пруфов. Похоже у вас какой-то пунктик на этот счет, видеть ложь в других, но не замечать ее в себе.
Интересно, какой диагноз вам поставил ваш лечащий врач?

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

привет, врунишка!

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

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

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

Vit ★★★★★
()

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

Вы имеете право использовать PVS-Studio бесплатно, добавив в исходный код своего проекта комментарии специального вида. Какие именно комментарии следует добавлять и как автоматизировать этот процесс описано в статье «Как использовать PVS-Studio бесплатно».

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

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

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

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

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

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

Если бы они предложили бесплатную лицензию за фото с флажком в жопе, мне бы тоже нельзя было своё фи высказать?

Хорошее название для требуемых строчек.

Можно даже так.

// Далее следует флажок в жопе

и эти две строчки

:)

x86_64 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.