Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: XZ Utils
Upstream-Contact:
 Lasse Collin <lasse.collin@tukaani.org>
 https://tukaani.org/xz/lists.html
Source:
 https://tukaani.org/xz
 https://git.tukaani.org/xz.git
Comment:
 XZ Utils is developed and maintained upstream by Lasse Collin.  Major
 portions are based on code by other authors; see AUTHORS for details.
 Most of the source has been put into the public domain, but some files
 have not (details below).
 .
 This file describes the source package.  The binary packages contain
 some files derived from other works: for example, images in the API
 documentation come from Doxygen.
License:
 Different licenses apply to different files in this package. Here
 is a rough summary of which licenses apply to which parts of this
 package (but check the individual files to be sure!):
 .
   - liblzma is in the public domain.
 .
   - xz, xzdec, and lzmadec command line tools are in the public
     domain unless GNU getopt_long had to be compiled and linked
     in from the lib directory. The getopt_long code is under
     GNU LGPLv2.1+.
 .
   - The scripts to grep, diff, and view compressed files have been
     adapted from gzip. These scripts and their documentation are
     under GNU GPLv2+.
 .
   - All the documentation in the doc directory and most of the
     XZ Utils specific documentation files in other directories
     are in the public domain.
 .
   - Translated messages are in the public domain.
 .
   - The build system contains public domain files, and files that
     are under GNU GPLv2+ or GNU GPLv3+. None of these files end up
     in the binaries being built.
 .
   - Test files and test code in the tests directory, and debugging
     utilities in the debug directory are in the public domain.
 .
   - The extra directory may contain public domain files, and files
     that are under various free software licenses.
 .
 You can do whatever you want with the files that have been put into
 the public domain. If you find public domain legally problematic,
 take the previous sentence as a license grant. If you still find
 the lack of copyright legally problematic, you have too many
 lawyers.
 .
 As usual, this software is provided "as is", without any warranty.
 .
 If you copy significant amounts of public domain code from XZ Utils
 into your project, acknowledging this somewhere in your software is
 polite (especially if it is proprietary, non-free software), but
 naturally it is not legally required. Here is an example of a good
 notice to put into "about box" or into documentation:
 .
     This software includes code from XZ Utils <http://tukaani.org/xz/>.
 .
 The following license texts are included in the following files:
   - COPYING.LGPLv2.1: GNU Lesser General Public License version 2.1
   - COPYING.GPLv2: GNU General Public License version 2
   - COPYING.GPLv3: GNU General Public License version 3
 .
 Note that the toolchain (compiler, linker etc.) may add some code
 pieces that are copyrighted. Thus, it is possible that e.g. liblzma
 binary wouldn't actually be in the public domain in its entirety
 even though it contains no copyrighted code from the XZ Utils source
 package.
 .
 If you have questions, don't hesitate to ask the author(s) for more
 information.

Files: *
Copyright: 2006-2018, Lasse Collin
           1999-2008, Igor Pavlov
           2006, Ville Koskinen
           1998, Steve Reid
           2000, Wei Dai
           2003, Kevin Springle
           2009, Jonathan Nieder
           2010, Anders F Björklund
License: PD
 This file has been put in the public domain.
 You can do whatever you want with this file.
Comment:
  From: Lasse Collin <lasse.collin@tukaani.org>
  To: Jonathan Nieder <jrnieder@gmail.com>
  Subject: Re: XZ utils for Debian
  Date: Sun, 19 Jul 2009 13:28:23 +0300
  Message-Id: <200907191328.23816.lasse.collin@tukaani.org>
 .
 [...]
 .
  > AUTHORS, ChangeLog, COPYING, README, THANKS, TODO,
  > dos/README, windows/README
 .
  COPYING says that most docs are in the public domain. Maybe that's not
  clear enough, but on the other hand it looks a bit stupid to put
  copyright information in tiny and relatively small docs like README.
 .
  I don't dare to say that _all_ XZ Utils specific docs are in the public
  domain unless otherwise mentioned in the file. I'm including PDF files
  generated by groff + ps2pdf, and some day I might include Doxygen-
  generated HTML docs too. Those don't include any copyright notices, but
  it seems likely that groff + ps2pdf or at least Doxygen put some
  copyrighted content into the generated files.

Files: INSTALL NEWS PACKAGERS
 windows/README-Windows.txt
 windows/INSTALL-MinGW.txt
Copyright: 2009-2010, Lasse Collin
License: probably-PD
 See the note on AUTHORS, README, and so on above.

Files: src/scripts/* lib/* extra/scanlzma/scanlzma.c
Copyright: © 1993, Jean-loup Gailly
           © 1989-1994, 1996-1999, 2001-2007, Free Software Foundation, Inc.
           © 2006 Timo Lindfors
           2005, Charles Levert
           2005, 2009, Lasse Collin
           2009, Andrew Dudman
Other-Authors: Paul Eggert, Ulrich Drepper
License: GPL-2+

Files: src/scripts/Makefile.am src/scripts/xzless.1
Copyright: 2009, Andrew Dudman
           2009, Lasse Collin
License: PD
 This file has been put in the public domain.
 You can do whatever you want with this file.

Files: doc/examples/xz_pipe_comp.c doc/examples/xz_pipe_decomp.c
Copyright: 2010, Daniel Mealha Cabrita
License: PD
 Not copyrighted -- provided to the public domain.

Files: lib/getopt.c lib/getopt1.c lib/getopt.in.h
Copyright: © 1987-2007 Free Software Foundation, Inc.
Other-Authors: Ulrich Drepper
License: LGPL-2.1+

Files: m4/getopt.m4 m4/posix-shell.m4
Copyright: © 2002-2006, 2008 Free Software Foundation, Inc.
           © 2007-2008 Free Software Foundation, Inc.
Other-Authors: Bruno Haible, Paul Eggert
License: permissive-fsf

Files: m4/acx_pthread.m4
Copyright: © 2008, Steven G. Johnson <stevenj@alum.mit.edu>
License: Autoconf

files: m4/ax_check_capsicum.m4
Copyright: © 2014, Google Inc.
           © 2015, Lasse Collin <lasse.collin@tukaani.org>
License: permissive-nowarranty

Files: Doxyfile.in
Copyright: © 1997-2007 by Dimitri van Heesch
Origin: Doxygen 1.4.7
License: GPL-2

Files: src/liblzma/check/crc32_table_?e.h
 src/liblzma/check/crc64_table_?e.h
 src/liblzma/lzma/fastpos_table.c
 src/liblzma/rangecoder/price_table.c
Copyright: none, automatically generated data
Generated-With:
 src/liblzma/check/crc32_tablegen.c
 src/liblzma/check/crc64_tablegen.c
 src/liblzma/lzma/fastpos_tablegen.c
 src/liblzma/rangecoder/price_tablegen.c
License: none
 No copyright to license.

Files: .gitignore m4/.gitignore po/.gitignore po/LINGUAS po/POTFILES.in
Copyright: none; these are just short lists.
License: none
 No copyright to license.

Files: tests/compress_prepared_bcj_*
Copyright: 2008-2009, Lasse Collin
Source-Code: tests/bcj_test.c
License: PD
 This file has been put into the public domain.
 You can do whatever you want with this file.
Comment:
 changelog.gz (commit 975d8fd) explains:
 .
 Recreated the BCJ test files for x86 and SPARC. The old files
 were linked with crt*.o, which are copyrighted, and thus the
 old test files were not in the public domain as a whole. They
 are freely distributable though, but it is better to be careful
 and avoid including any copyrighted pieces in the test files.
 The new files are just compiled and assembled object files,
 and thus don't contain any copyrighted code.

Files: po/cs.po po/de.po po/fr.po
Copyright: 2010, Marek Černocký
           2010, Andre Noll
           2011, Adrien Nader
License: PD
 This file is put in the public domain.

Files: po/it.po po/pl.po
Copyright: 2009, 2010, Gruppo traduzione italiano di Ubuntu-it
           2010, Lorenzo De Liso
           2009, 2010, 2011, Milo Casagrande
           2011, Jakub Bogusz
License: PD
 This file is in the public domain

Files: INSTALL.generic
Copyright: © 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
             2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
License: permissive-nowarranty

Files: dos/config.h
Copyright: © 1992, 1993, 1994, 1999, 2000, 2001, 2002, 2005
             Free Software Foundation, Inc.
           2007-2010, Lasse Collin
Other-Authors: Roland McGrath, Akim Demaille, Paul Eggert,
               David Mackenzie, Bruno Haible, and many others.
Origin: configure.ac from XZ Utils,
        visibility.m4 serial 1 (gettext-0.15),
        Autoconf 2.52g
License: config-h
 configure.ac:
 .
  # Author: Lasse Collin
  #
  # This file has been put into the public domain.
  # You can do whatever you want with this file.
 .
 visibility.m4:
 .
  dnl Copyright (C) 2005 Free Software Foundation, Inc.
  dnl This file is free software; the Free Software Foundation
  dnl gives unlimited permission to copy and/or distribute it,
  dnl with or without modifications, as long as this notice is preserved.
 .
 dnl From Bruno Haible.
 .
 comments from Autoconf 2.52g:
 .
  # Copyright 1992, 1993, 1994, 1999, 2000, 2001, 2002
  # Free Software Foundation, Inc.
 .
 [...]
 .
  # As a special exception, the Free Software Foundation gives unlimited
  # permission to copy, distribute and modify the configure scripts that
  # are the output of Autoconf.  You need not follow the terms of the GNU
  # General Public License when using or distributing such scripts, even
  # though portions of the text of Autoconf appear in them.  The GNU
  # General Public License (GPL) does govern all other use of the material
  # that constitutes the Autoconf program.
 .
 On Debian systems, the complete text of the GNU General Public
 License version 2 can be found in ‘/usr/share/common-licenses/GPL-2’.
 dos/config.h was generated with autoheader, which tells Autoconf to
 output a script to generate a config.h file and then runs it.

Files: po/Makevars
Origin: gettext-runtime/po/Makevars (gettext-0.12)
Copyright: © 2003 Free Software Foundation, Inc.
Authors: Bruno Haible
License: LGPL-2.1+
 The gettext-runtime package is under the LGPL, see files intl/COPYING.LIB-2.0
 and intl/COPYING.LIB-2.1.
 .
 On Debian systems, the complete text of intl/COPYING.LIB-2.0 from
 gettext-runtime 0.12 can be found in ‘/usr/share/common-licenses/LGPL-2’
 and the text of intl/COPYING.LIB-2.1 can be found in
 ‘/usr/share/common-licenses/LGPL-2.1’.
 .
 po/Makevars consists mostly of helpful comments and does not contain a
 copyright and license notice.

Files: COPYING.GPLv2 COPYING.GPLv3 COPYING.LGPLv2.1
Copyright: © 1989, 1991, 1999, 2007 Free Software Foundation, Inc.
License: noderivs
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

Files: debian/*
Copyright: 2009-2012, Jonathan Nieder
License: PD-debian
 The Debian packaging files are in the public domain.
 You may freely use, modify, distribute, and relicense them.

License: LGPL-2.1+
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU Lesser General Public License as published by
 the Free Software Foundation; either version 2.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 Lesser General Public License for more details.
 .
 You should have received a copy of the GNU Lesser 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.
 .
 On Debian systems, the complete text of the GNU Lesser General Public
 License version 2.1 can be found in ‘/usr/share/common-licenses/LGPL-2.1’.

License: GPL-2
 Permission to use, copy, modify, and distribute this software and its
 documentation under the terms of the GNU General Public License is
 hereby granted. No representations are made about the suitability of
 this software for any purpose. It is provided "as is" without express
 or implied warranty. See the GNU General Public License for more
 details.
 .
 Documents produced by doxygen are derivative works derived from the
 input used in their production; they are not affected by this license.
 .
 On Debian systems, the complete text of the version of the GNU General
 Public License distributed with Doxygen can be found in
 ‘/usr/share/common-licenses/GPL-2’.

License: GPL-2+
 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 2, 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.
 .
 On Debian systems, the complete text of the GNU General Public License
 version 2 can be found in ‘/usr/share/common-licenses/GPL-2’.

License: Autoconf
 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 3 of the License, 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, see <http://www.gnu.org/licenses/>.
 .
 As a special exception, the respective Autoconf Macro's copyright owner
 gives unlimited permission to copy, distribute and modify the configure
 scripts that are the output of Autoconf when processing the Macro. You
 need not follow the terms of the GNU General Public License when using
 or distributing such scripts, even though portions of the text of the
 Macro appear in them. The GNU General Public License (GPL) does govern
 all other use of the material that constitutes the Autoconf Macro.
 .
 This special exception to the GPL applies to versions of the Autoconf
 Macro released by the Autoconf Archive. When you make and distribute a
 modified version of the Autoconf Macro, you may extend this special
 exception to the GPL to apply to your modified version as well.
 .
 On Debian systems, the complete text of the GNU General Public
 License version 3 can be found in ‘/usr/share/common-licenses/GPL-3’.

License: permissive-fsf
 This file is free software; the Free Software Foundation
 gives unlimited permission to copy and/or distribute it,
 with or without modifications, as long as this notice is preserved.

License: permissive-nowarranty
 Copying and distribution of this file, with or without modification,
 are permitted in any medium without royalty provided the copyright
 notice and this notice are preserved.  This file is offered as-is,
 without warranty of any kind.
