Skip to content

OpenPrinting/libcups

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

The CUPS Library v3 (libcups)

Version Apache 2.0 Build and Test Coverity Scan

Note: This is a major release update of the CUPS library that breaks both binary and source compatibility with prior releases of CUPS.

The CUPS library (libcups) provides a common C API for HTTP/HTTPS and IPP communications on Unix®-like operating systems and Microsoft Windows®. It is used by many printing-related projects such as CUPS and PAPPL. This project is part of OpenPrinting's CUPS 3.0 development, which will provide a 100% driverless printing system for Unix®-life operating systems.

This version of the CUPS library removes all of the deprecated and obsolete APIs from CUPS 2.x and earlier and is not binary compatible with older releases. See the file doc/cupspm.html for a description of the changes and how to migrate your code to the new library.

The CUPS library is licensed under the Apache License Version 2.0 with an exception to allow linking against GNU GPL2-only software. See the files LICENSE and NOTICE for more information.

Getting the Code

Do not use the ZIP file available via the Github "Code" button on the main project page, as that archive is missing the PDFio submodule and will not compile.

The source code is available in release tarballs or via the Github repository. For a release tarball, run the following commands:

tar xvzf libcups-VERSION.tar.gz
cd libcups-VERSION

Similarly, the release ZIP file can be extracted with the following commands:

unzip libcups-VERSION.zip
cd libcups-VERSION

From the Github sources, clone the repository with the --recurse-submodules option or use the git submodule commands:

git clone --recurse-submodules [email protected]:OpenPrinting/libcups.git
cd libcups

git clone [email protected]:OpenPrinting/libcups.git
cd libcups
git submodule update --init --recursive

To update an already-cloned repository:

git pull
git submodule update --init --recursive

Reading the Documentation

Initial documentation to get you started is provided in the root directory of the CUPS sources:

  • CHANGES.md: A list of changes for each release of libcups.
  • CONTRIBUTING.md: Guidelines for contributing to the CUPS project.
  • CREDITS.md: A list of past contributors to the CUPS project.
  • DEVELOPING.md: Guidelines for developing code for the CUPS project.
  • INSTALL.md: Instructions for building and installing the CUPS library.
  • LICENSE: The CUPS license agreement (Apache 2.0).
  • NOTICE: Copyright notices and exceptions to the CUPS license agreement.
  • README.md: This file.

You will find the CUPS Programing Guide in HTML and EPUB formats as well as man pages in the doc directory.

Please read the documentation before asking questions.

Legal Stuff

Copyright © 2020-2024 by OpenPrinting.

Copyright © 2007-2020 by Apple Inc.

Copyright © 1997-2007 by Easy Software Products.

CUPS is provided under the terms of the Apache License, Version 2.0 with exceptions for GPL2/LGPL2 software. A copy of this license can be found in the file LICENSE. Additional legal information is provided in the file NOTICE.

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.