cabal-debian-4.30: Create a Debianization for a Cabal package

Safe HaskellNone
LanguageHaskell98

Debian.Policy

Contents

Description

Code pulled out of cabal-debian that straightforwardly implements parts of the Debian policy manual, or other bits of Linux standards.

Synopsis

Paths

Installed packages

getDebhelperCompatLevel :: IO (Maybe Int) Source

The version number of the installed debhelper package is the highest acceptable value for compat in a debian/control file. If the package doesn't explicitly set an (acceptable) compat value we can use the value returned by this function, assuming debhelper is installed.

getDebianStandardsVersion :: IO (Maybe StandardsVersion) Source

Assumes debian-policy is installed

Package fields

data PackageArchitectures Source

The architectures for which a binary deb can be built.

Constructors

All

The package is architecture independenct

Any

The package can be built for any architecture

Names [String]

The list of suitable architectures

parseUploaders :: String -> Either String [NameAddr] Source

Turn the uploaders field of a cabal package into a list of RFC2822 NameAddr values.

parseMaintainer :: String -> Either String NameAddr Source

Parse a string containing a single NameAddr value.

maintainerOfLastResort :: NameAddr Source

Maintainer is a mandatory field, so we need a value we can use when all else fails.

data License Source

Constructors

Public_Domain

No license required for any purpose; the work is not subject to copyright in any jurisdiction.

Apache

Apache license 1.0, 2.0.

Artistic

Artistic license 1.0, 2.0.

BSD_2_Clause

Berkeley software distribution license, 2-clause version.

BSD_3_Clause

Berkeley software distribution license, 3-clause version.

BSD_4_Clause

Berkeley software distribution license, 4-clause version.

ISC

Internet Software Consortium, sometimes also known as the OpenBSD License.

CC_BY

Creative Commons Attribution license 1.0, 2.0, 2.5, 3.0.

CC_BY_SA

Creative Commons Attribution Share Alike license 1.0, 2.0, 2.5, 3.0.

CC_BY_ND

Creative Commons Attribution No Derivatives license 1.0, 2.0, 2.5, 3.0.

CC_BY_NC

Creative Commons Attribution Non-Commercial license 1.0, 2.0, 2.5, 3.0.

CC_BY_NC_SA

Creative Commons Attribution Non-Commercial Share Alike license 1.0, 2.0, 2.5, 3.0.

CC_BY_NC_ND

Creative Commons Attribution Non-Commercial No Derivatives license 1.0, 2.0, 2.5, 3.0.

CC0

Creative Commons Zero 1.0 Universal. Omit Universal from the license version when forming the short name.

CDDL

Common Development and Distribution License 1.0.

CPL

IBM Common Public License.

EFL

The Eiffel Forum License 1.0, 2.0.

Expat

The Expat license.

GPL

GNU General Public License 1.0, 2.0, 3.0.

LGPL

GNU Lesser General Public License 2.1, 3.0, or GNU Library General Public License 2.0.

GFDL

GNU Free Documentation License 1.0, 1.1, 1.2, or 1.3. Use GFDL-NIV instead if there are no Front-Cover or Back-Cover Texts or Invariant Sections.

GFDL_NIV

GNU Free Documentation License, with no Front-Cover or Back-Cover Texts or Invariant Sections. Use the same version numbers as GFDL.

LPPL

LaTeX Project Public License 1.0, 1.1, 1.2, 1.3c.

MPL

Mozilla Public License 1.1.

Perl

erl license (use "GPL-1+ or Artistic-1" instead)

Python

Python license 2.0.

QPL

Q Public License 1.0.

W3C

W3C Software License For more information, consult the W3C Intellectual Rights FAQ.

Zlib

zlib/libpng license.

Zope

Zope Public License 1.0, 1.1, 2.0, 2.1.

OtherLicense String

A license name associated with the subsequent text of the License: field or in a Files paragraph of the same debian/copyright file, or in a License: paragraph.

fromCabalLicense :: License -> License Source

Convert the Cabal license to a Debian license. I would welcome input on how to make this more correct.

toCabalLicense :: License -> License Source

Convert a Debian license to a Cabal license. Additional cases and corrections welcome.

readLicense :: Text -> License Source

I think we need an actual parser for license names.