Предоставление кредита для модуля 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

Можете ли вы уменьшить ненужный код (чтобы удовлетворить проблемы вашего менеджера). Оставьте в тактике необходимый код в файле, в который он пришел, и дайте автору кредит в этом модуле/пакете.

Например: Это было вдохновлено (украдено) от Джо Э. Перла.