Fork of that adds output format options. The license content itself is unchanged and kept in sync with upstream.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
anna ec4bcb5a58
parameterize build format
2 years ago
.gitignore parameterize build format 2 years ago
LICENSE Create LICENSE 2 years ago
Makefile parameterize build format 2 years ago Added donation link to readme 2 years ago
template.xml found a missing space 2 years ago

Nonviolent Public License Builder v7

The Nonviolent Public License builder project provides 4 licenses generated from a common template.

  • NVPL - Nonviolent Public License
  • CNPL - Cooperative Nonviolent Public License
  • NVPL-NA - Nonviolent Public License No Attributions
  • CNPL-NA - Cooperative Nonviolent Public License No Attributions

The text of the licenses are all in this repository each in its own .md (markdown) file above. You don't have to download and use the builder unless you are contributing.

License information and summary of purpose here:

Please use the "+" at the end of the license URI (like: CNPL-NAv7+) to allow future license revisions to apply.

These licenses are based off of the CSL (Cooperative Software License) which is not actually just for software.

Use this license header (for the CNPL) in your source files if you want:

// Copyright (C) 2021 (Author) <email>
// This file is part of project.
// project is non-violent software: you can use, redistribute,
// and/or modify it under the terms of the CNPLv7+ as found
// in the LICENSE file in the source code root directory or
// at <>.
// project comes with ABSOLUTELY NO WARRANTY, to the extent
// permitted by applicable law.  See the CNPL for details.


  • Only make or propose edits to the license text in template.xml
  • Changes that are not common among license have some special formatting requirements. Check the output of make to ensure everything is removed from the licenses it does not apply to.
    • If a change only applies to the CNPL or CNPL-NA use the "restriction-cooperative" role attribute
    • If a change only applies to the CNPL or NVPL (or in other words, it has to do with requiring attributions) use the "restriction-attribution" role attribute.
  • When in doubt, make a bug report and I will be glad to help!


  • pandoc - for converting from docbook5 xml to markdown
  • xmlstarlet - provides the xml binary
  • make

Example Usage:

  • make all - (re)generate all license markdown files from template.xml
  • Use pandoc to convert the license into the format of your choice. Use pandoc --list-output-formats for a list of available document formats. Try some of these:
    • pandoc -f markdown -t pdf -s -o cnpl.pdf - Build a pdf of the CNPL (requires texlive-core)
    • pandoc -f markdown -t odt -s -o cnpl.odt - Convert the license to an odt file and open it for spell and grammar check in LibreOffice.
    • pandoc -f markdown -t plain -s -o cnpl.txt - Produce a plaintext version of the license.