Предоставление кредита для модуля Perl
Я написал script для своей компании, и я использую некоторые библиотеки, которые я получил от CPAN. Мой менеджер хотел, чтобы я консолидировал и удалял дополнительные библиотеки, что немного забавно, потому что я включаю их для работы script.
Несколько примечаний:
- У меня нет доступа root на этом сервере, и я не могу запросить доступ
- Чтобы использовать модули CPAN без корня, я их установил в свой каталог пользователя
- Чтобы позволить другим пользователям запускать мои сценарии, я обычно включаю папку под названием "libs" и внутри моего каталога script, а в script у меня есть:
use 'libs';
вверху, прежде чем я use
мой CPAN модули.
Единственное решение, которое я имею прямо сейчас, - это буквально разместить содержимое модулей perl внутри моего perl script. Тем не менее, я хочу отдать должное, когда это произойдет, а также не попасть в неприятности для включения кода с открытым исходным кодом без надлежащего кредита его авторам и организациям.
Итак, как мне это сделать? Я не пытаюсь уйти ни с чем. Честно говоря, я хочу сделать это правильно.
Все три модуля говорят "лицензированы на тех же условиях, что и сам Perl", но я чувствую, что это не должно быть так просто.
Я также хотел бы изучить любые другие идеи!
Модули:
- Text:: Таблица
- Text:: Aligner
- Term:: ANSIColor
Ответы
Ответ 1
Если модули являются чистыми Perl-модулями, вы можете просто добавить код (включая те package
) в свою программу. Я бы также включил POD, который включал бы заявления об авторских правах и имена авторов. Это должно удовлетворять требованиям художественной лицензии (но может не соответствовать требованиям лицензирования GNU).
Другая возможность заключается в использовании Perlbrew, который позволит вам установить пользовательскую версию Perl в системе. Таким образом, вы можете установить модули CPAN без административного разрешения, и вы также можете сказать другим пользователям использовать Perlbrew.
Я использую его, потому что я могу устанавливать и переключаться между различными версиями Perl, что позволяет мне проверять мои скрипты Perl в разных версиях Perl. Я также использовал его на наших серверах, где мне нужна более новая версия Perl или модулей, которые не были включены в стандартный выпуск.
Перед установкой Perlbrew вам нужно получить разрешение на ИТ, но много раз они освобождаются, что им больше не нужно беспокоиться о том, чтобы поддерживать и устанавливать модули CPAN для вашего использования.
Ответ 2
Использует PAR Packager вариант для вас? Это создало бы автономный исполняемый файл.
Ответ 3
Интересный вопрос и перспектива. Я не понимаю, что против использования библиотек или модулей, но я позволю вашему менеджеру подумать; -)
Что касается авторского права, то лучше всего проконсультироваться с адвокатом, если вы хотите быть уверенным, но, насколько я понимаю, вы можете объединить работу других при условии, что вы сохраните уведомления об авторских правах. Комбинированная работа не может быть покрыта copyleft, поэтому вы можете использовать ее в коммерческих целях (т.е. Распространять ее без раскрытия источника). Но проконсультируйтесь с адвокатом.
Но, поскольку вы сказали, что хотите изучить другие идеи, App:: Staticperl может быть решением? У меня нет опыта с этим, но я попробовал это с простым примером и получил рабочий исполняемый файл.
App:: Staticperl создает автономный исполняемый файл из Perl-интерпретатора со встроенными модулями CPAN. Шаги, которые я выполнил, были грубо (вам нужно будет адаптироваться, потому что, очевидно, я не смог протестировать ваш script):
- последняя версия App:: Staticperl - 1.43: https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/App-Staticperl-1.43.tar.gz
- либо установите модуль через CPAN, либо просто извлеките bin/staticperl из tar - это автономный script
- отредактируйте staticperl для изменения
EMAIL
и CPAN
(необязательно, но вы можете изменить зеркало CPAN)
-
./staticperl install
загружает и создает Perl; он закончил с сообщением об ошибке на моем ящике, но создал рабочий Perl
-
./staticperl cpan
вводит интерактивную подсказку CPAN; install Text::Table
, install Term::ANSIColor
и все, что вам нужно
-
./staticperl mkapp my_app --boot path/to/your/script -MText::Table -MText::Aligner -MTerm::ANSIColor
- попробуйте приложение:
./my_app
- скорее всего, сбой произойдет с сообщением об ошибке о недостающих модулях; повторите предыдущий шаг и включите недостающие модули в флаги -M
Удачи!
Ответ 4
Можете ли вы уменьшить ненужный код (чтобы удовлетворить проблемы вашего менеджера). Оставьте в тактике необходимый код в файле, в который он пришел, и дайте автору кредит в этом модуле/пакете.
Например: Это было вдохновлено (украдено) от Джо Э. Перла.