2
1
mirror of https://github.com/qpdf/qpdf.git synced 2024-05-29 00:10:54 +00:00
Go to file
Jay Berkenbilt 94131116a9 more notes, testing of cleartext metadata, some crypt filter fixes
git-svn-id: svn+q:///qpdf/trunk@823 71b93d88-0707-0410-a8cf-f5a4172ac649
2009-10-18 19:54:24 +00:00
doc update release date to actual date 2008-04-29 12:55:25 +00:00
examples make -key not take an argument with a / to appease msys's path translation 2009-10-14 01:06:18 +00:00
external-libs generalize build 2009-10-11 00:24:22 +00:00
include/qpdf implemented writing R4/V4 encryption except that the output files don't open in Adobe reader 9.1.3. 2009-10-18 02:03:18 +00:00
libqpdf more notes, testing of cleartext metadata, some crypt filter fixes 2009-10-18 19:54:24 +00:00
libtests test aes 2009-10-17 23:58:59 +00:00
m4 update libtool and automake pieces 2009-09-26 15:42:39 +00:00
make remove pdb 2009-10-12 02:13:04 +00:00
manual notes 2009-10-11 01:21:06 +00:00
qpdf more notes, testing of cleartext metadata, some crypt filter fixes 2009-10-18 19:54:24 +00:00
qtest fix qtest-driver 2009-10-14 00:57:04 +00:00
zlib-flate generalize build 2009-10-11 00:24:22 +00:00
Artistic-2.0 update release date to actual date 2008-04-29 12:55:25 +00:00
autoconf.mk.in handle external libs in autoconf 2009-10-10 17:32:34 +00:00
ChangeLog only seed randon number generater once for aes-cbc, try to avoid compressing Metadata streams 2009-10-18 14:09:10 +00:00
config.guess update release date to actual date 2008-04-29 12:55:25 +00:00
config.sub update release date to actual date 2008-04-29 12:55:25 +00:00
configure.ac use srand and rand instead of srandom and random of the latter are not available 2009-10-18 00:12:35 +00:00
INSTALL update release date to actual date 2008-04-29 12:55:25 +00:00
install-sh update libtool and automake pieces 2009-09-26 15:42:39 +00:00
ltmain.sh update libtool and automake pieces 2009-09-26 15:42:39 +00:00
make_dist update libtool and automake pieces 2009-09-26 15:42:39 +00:00
Makefile allow rule-specific clean targets 2009-10-12 02:13:13 +00:00
mkinstalldirs update libtool and automake pieces 2009-09-26 15:42:39 +00:00
qpdf.spec finished testing C API 2009-09-27 20:33:17 +00:00
README got working aes128 implementation 2009-10-17 15:01:20 +00:00
README.maintainer finished testing C API 2009-09-27 20:33:17 +00:00
README.windows now possible to test from msys! 2009-10-14 01:20:46 +00:00
TODO more notes, testing of cleartext metadata, some crypt filter fixes 2009-10-18 19:54:24 +00:00

This is the QPDF package.  Information about it can be found at
http://qpdf.qbilt.org.

QPDF is copyright (c) 2005-2009 Jay Berkenbilt

This software may be distributed under the terms of version 2 of the
Artistic License which may be found in the source distribution as
"Artistic-2.0".  It is provided "as is" without express or implied
warranty.


Licensing terms of embedded software
====================================

Some additional software with additional licensing terms is embedded
within the qpdf source distribution in "external-libs".  This software
is not actually used by the qpdf build unless the
--enable-build-external-libs option is passed to ./configure.  These
packages have their own licensing terms, both of which are compatible
with qpdf's license.

Zlib's license can be read in external-libs/zlib/zlib.h

PCRE's licensing terms can be found in external-libs/pcre/LICENSE.
PCRE's licensing terms require that we include the following
information:

   Regular expression support is provided by the PCRE library package,
   which is open source software, written by Philip Hazel, and
   copyright by the University of Cambridge, England.

The sources to PCRE can be independently obtained from

   ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/

The Rijndael encryption implementation used as the basis for AES
encryption and decryption support comes from Philip J. Erdelsky's
public domain implementation.  The files libqpdf/rijndael.cc and
libqpdf/qpdf/rijndael.h remain in the public domain.  They were
obtained from

  http://www.efgh.com/software/rijndael.htm
  http://www.efgh.com/software/rijndael.txt


Building on UNIX/Linux
======================

For UNIX and UNIX-like systems, you can usually get by with just

./configure
make
make install

For more detailed general information, see the "INSTALL" file in this
directory.

Building on Windows
===================

QPDF is known to build and pass its test suite with mingw (gcc 4.4.0)
and Microsoft Visual C++ .NET 2008 Express.  Either cygwin or MSYS
plus ActivateState Perl is required to build as well in order to get
make and other related tools.  The MSVC works with either cygwin or
MSYS.  The mingw build requires MSYS and will probably not work with
cygwin.

For details on how to build under Windows, see README.windows.


Additional Notes on Build
=========================

QPDF's build system, inspired by abuild (http://www.abuild.org), can
optionally use its own built-in rules rather than using libtool and
obeying the compiler specified with configure.  This can be enabled by
passing --with-buildrules=buildrules where buildrules corresponds to
one of the .mk files (other than rules.mk) in the make directory.
This should never be necessary on a UNIX system, but may be necessary
on a Windows system.  See README.windows for details.  There is a
gcc-linux.mk file enable "gcc-linux" build rules, but it is intended
to help test the build system; Linux users should build with the
"libtools" rules, which are enabled by default.

The QPDF package provides some executables and a software library.  A
user's manual can be found in the "doc" directory.  The docbook
sources to the user's manual can be found in the "manual" directory.

The software library is just libqpdf, and all the header files are in
the qpdf subdirectory.  If you link with -lqpdf and your system does
not know how to read libtool .la files, then you will also need to
link with -lpcre and -lz.

To learn about using the library, please read comments in the header
files in include/qpdf, especially QPDF.hh, QPDFObjectHandle.hh, and
QPDFWriter.hh.  You can also study the code of qpdf/qpdf.cc, which
exercises most of the public interface.  There are additional example
programs in the examples directory.