Home / Alt manpages / perlgpl(1)

  • perlgpl(1)
  • User command
  • linux

Read Perl's GPL v1 Text and Build a Compliant Notice

You will finish with a local copy of the GPL version 1 text, a clear distinction between Perl's available licences and a practical notice template for a program that deliberately uses this licence. This is a documentation workflow, not a licence detector: the installed perlgpl page contains the terms, but it cannot decide whether your code is a covered derivative work.

Allow about 15 minutes for a first pass. You need a shell, the perl-doc package, and the copyright and distribution facts for your own project. The examples below use an ordinary user account. No command needs sudo.

Checkpoint 1: confirm the installed document

  1. Check the Perl and documentation package versions.
perl -v
dpkg-query -W -f='${Package} ${Version}\n' perl-doc perl-base

On the system used for this guide, Perl reports version 5.38.2 and both packages are 5.38.2-3.2ubuntu0.6. The manpage is generated from Perl's documentation and identifies itself as Perl 5.38.2 documentation. Your package revision may differ, so record it with the licence review.

Now open the document in the normal terminal viewer:

perldoc perlgpl

Press q to leave the pager. The useful verification is that the page starts with the name perlgpl, describes "the GNU General Public License, version 1", and also points readers to perlartistic. It is a licence text stored in Perl's documentation, not an executable that changes a project.

Checkpoint 2: establish which licence you mean

Read the opening description before copying any notice. The local page says that Perl may be redistributed or modified under either the GNU General Public License, version 1, or the Artistic License that comes with Perl. That is a statement about Perl's distribution, not blanket permission to apply either licence to unrelated code.

GPL v1 is an old licence. Do not silently replace its wording with GPL v2 or GPL v3, and do not write "GPL" without a version when a project requires this exact text. The Free Software Foundation keeps the original GPL v1 wording in its old-licences archive. Compare that primary copy with the local manpage if the provenance of a notice matters.

If you are reviewing Perl itself, keep the Artistic License in the same review. If you are selecting a licence for a new project, stop and get project-specific legal advice before treating this historical document as your preferred option. The steps here explain what the text says; they do not determine the legal status of your particular combination of files.

Checkpoint 3: turn the terms into a distribution checklist

For a covered program, the document describes four operational duties that are easy to lose when a project is copied between repositories:

  • Keep an appropriate copyright notice and the warranty disclaimer with verbatim source copies.
  • Give recipients a copy of the GPL text along with the program.
  • When distributing modified files, mark that they were changed and include the date of the change.
  • When distributing object code or an executable, provide the complete corresponding machine-readable source code, or follow one of the source-offer routes specified by the licence text.

The exact routes and conditions matter. Read the numbered terms in the document instead of reducing them to a slogan about "open source". The page also says that merely putting an independent work beside the program on the same distribution medium does not automatically bring that independent work under these terms. That boundary is useful, but it is not a substitute for analysing how the programs interact.

Checkpoint 4: add a project notice without inventing facts

Replace every bracketed value before committing a notice. The following is shaped like the appendix example in the local page, but the names, years and project description must come from your project:

Project name and one-line description
Copyright (C) 2026 [Copyright holder]

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 1, or (at
your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
02110-1301 USA

The phrase "either version 1, or any later version" is a choice. Keep it only if the copyright holder intends to offer that choice. A notice that names version 1 only has a different effect from one that permits later versions.

The appendix separately describes interactive programs. If a modified program normally reads commands interactively, its simplest usual interactive start must announce the copyright, warranty position, redistribution permission and how to view the GPL. Do not add a pretend command such as show w unless your program really implements it. Use the project's actual help or menu path.

Checkpoint 5: verify the hand-off

  1. Save the full licence text beside the distributed source or in the location named by your project documentation.
  2. Check that every modified file has the required change notice and date.
  3. Build the distribution archive, then list it and confirm the licence text and machine-readable source are present.
tar -tf project-1.0.tar.gz | grep -E '(^|/)(COPYING|LICENSE|README|src/)'
perldoc perlgpl > /tmp/perlgpl.txt
wc -l /tmp/perlgpl.txt

The first command is only an inspection. If the archive is missing a required file, rebuild it rather than editing a published archive in place. The second command makes a temporary local reference copy and leaves the original documentation untouched. Remove it when the review is complete with rm /tmp/perlgpl.txt; there is no project state to undo.

Done means

  • You can open the exact installed GPL v1 text with perldoc perlgpl.
  • You have recorded the local Perl and perl-doc versions.
  • Your notice names the intended GPL version and uses real copyright-holder and project details.
  • Your distribution includes the licence text and the source or source offer required by the terms you are using.
  • You have reviewed interactive-start behaviour and the boundary between covered code and independent aggregation.