about summary refs log tree commit diff
path: root/buildtools/debian/README
blob: 3f74f49433ee583d44cbdccfe4bb286e5257dfae (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Files in this directory are for creating a Debian package (.deb file),
which one can use to install Netpbm on a Debian system (or a system running
a derivative of Debian, such as Ubuntu or Mint).

You can of course install on one of these systems by running 'installnetpbm',
or otherwise inserting all the files in the proper place in your system file
tree, but having a Debian package allows you to manage those files using
Debian's normal package management.  The package management system will know
where the Netpbm files came from, and you can upgrade or remove Netpbm easily.
The package management system will also be aware of prerequisites of Netpbm
and ensure that you don't have Debian's own inferior version of Netpbm
installed (which would cause conflicts).

The package we create is named 'netpbm-sf' (where the "sf" is from
"SourceForge"), to be distinct from the package named "netpbm" which is part
of Debian.

To install Netpbm as a Debian package:

  1) Follow the regular instructions to build and package Netpbm
     (configure, make, make package).

  2) With the root of the built Netpbm build tree as your current
     directory:

     $ make deb

     (This defaults to getting Netpbm from /tmp/netpbm, which is also where
     'make package' defaults to putting it).

  3) $ dpkg --install netpbm-sfXXXX.deb

     (netpbm-sfXXXX.deb is the file created by 'make deb', in the current
     directory).


PREREQUSISITES
--------------

The following information was taken from the Stretch version (Version 9) of
Debian, in June 2019.


Building
--------

You need the following Debian packages to build all of Netpbm.  These
are in addition to what is in the base system.

Build tools:

  gcc
  make
  flex

Libraries to link with Netpbm:

You could omit some of these and, in the Netpbm build configuration dialog,
indicate you don't have them, and the build will simply omit some parts.
For example, if you don't install libx11-dev, the Netpbm build process
will not build the 'pamx' program.

  libjpeg-dev
  libpng-dev
  libtiff-dev
  libx11-dev
  libxml2-dev
  zlib1g-dev

Example:

  $ apt-get install gcc


Running
-------

The following Debian packages are the known prerequisites for running Netpbm
(and the package created by 'mkdeb' knows this).

    libc6
    libjpeg62 or libjpeg8
    libpng12-0
    libsvga1 (available only on older systems)
    libtiff5
    libx11-6
    zlib1g
    ghostscript
    perl
    perl-base
    bash

Note that many of these are needed only for a few parts of Netpbm, and it will
be pretty obvious what the problem is when you need the prerequisite package
and don't have it, so if you don't want to install a prerequisite, it would
probably be fine to force install Netpbm, ignoring the prerequisites.

There is one part you cannot build with current Debian: 'ppmsvgalib'.  That is
because Debian does not include the required libsvga library (the last version
that did was 7).


CONFLICTS WITH DEBIAN'S NETPBM
------------------------------

Debian has several packages of Netpbm, all based on a slightly modified
Sourceforge Netpbm 9.25 from 2002 (don't be confused by Debian's numbering
system, which makes it look like it is Netpbm 10).  If you want to install
Sourceforge Netpbm on your system, you will want first to remove any of these
you have installed:

  netpbm
  netpbm-dev
  libnetpbm9
  libnetpbm10

Sourceforge Netpbm should be backward compatible with all of those.  Note that
'mkdeb' makes only one package.  It contains the programs, the runtime
libraries, and the development files.

We have not yet worked out what has to be done about the fact that the Debian
packaging system thinks the Debian Netpbm packages are prerequisites for
things.  If you install Sourceforge Netpbm via the package created by mkdeb,
you should tell the Netpbm maintainer whatever you learn about that.