Разработчик(и) | Томас Надь |
---|---|
Стабильный релиз | 2.0.25 / 1 января 2023 г. ( 2023-01-01 ) |
Репозиторий |
|
Написано в | Питон [1] |
Операционная система | MS Windows , POSIX |
Тип | Инструменты разработки программного обеспечения |
Лицензия | Новая лицензия BSD (исходный код), CC-BY-NC-ND (документация) |
Веб-сайт | waf.io |
Waf — это инструмент автоматизации сборки, разработанный для помощи в автоматической компиляции и установке программного обеспечения . Он написан на Python и поддерживается Томасом Наги.
Исходный код Waf представляет собой программное обеспечение с открытым исходным кодом , выпущенное в соответствии с условиями новой лицензии BSD , хотя его сопроводительная документация распространяется под лицензией CC-BY-NC-ND , которая запрещает как модификацию, так и коммерческое распространение: это не позволяет поставщикам, таким как проект Debian , включать документацию Waf в свои дистрибутивы.
Томас Надь создал инструмент автоматизации сборки под названием BKsys , который был разработан для размещения поверх SCons , предоставляя более высокий уровень функциональности, аналогичный Autotools . Это было частью усилий по переходу KDE от Autotools к более современной системе сборки на начальных этапах цикла разработки KDE 4. BKsys/SCons был выбран сообществом KDE в качестве новой стандартной системы сборки. [2] Когда Томас Надь решил, что фундаментальные проблемы SCons (в первую очередь плохая масштабируемость) слишком сложны и требуют много времени для исправления, он начал полную переработку , которую назвал Waf . Поскольку BKsys был признан тупиковым вариантом, KDE решила вместо этого перейти на CMake ; [3] однако Waf продолжал поддерживаться как отдельный проект и с тех пор активно развивался и принимался другими сообществами. [ необходима цитата ]
Возможности WAF:
Waf поддерживает:
Waf написан на Python . Вместо того, чтобы быть установленным в качестве необходимого компонента системного программного обеспечения, как в системах сборки, таких как GNU make , он распространяется как скрипт, включающий встроенный архивный файл , предназначенный для запуска для распаковки исходных кодов Waf в исходном дереве проекта.
Исходный код Waf выпускается на условиях New BSD License . Однако намерение Надя состоит в том, чтобы Waf был включен как часть отдельного программного проекта, а не установлен как общесистемная система сборки. С этой целью документация, которая поставляется как часть выпуска Waf, выпускается под лицензией CC-BY-NC-ND , которая запрещает как модификацию, так и коммерческое распространение: это изменение было сделано для того, чтобы помешать проекту Debian включить Waf как общесистемный программный пакет. [4] Хотя изначально Debian просто воздерживался от включения документации, прямой запрос Надя заставил Debian удалить Waf и не рекомендовать его использование в качестве системы сборки. [5]
Разработчик Debian Ян Джексон высказал мнение, что использование Waf, распространяемого в системе сборки программного обеспечения на условиях GNU General Public License ( GNU GPL), будет нарушением условий этой лицензии, поскольку скрипт распаковки создает зашифрованную копию своего оригинального исходного кода, а не «предпочтительную форму для модификации», как того требует формулировка GPL для систем сборки. [6]