Skip to content

Commit 63349c9

Browse files
committed
Updates some dependency and install infos
1 parent 5412d4c commit 63349c9

File tree

3 files changed

+65
-53
lines changed

3 files changed

+65
-53
lines changed

_libosmium_manual/02_dependencies.md

+63-52
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,54 @@ CMake usually generates a Makefile for Make, which you will also need.
5454
* Fedora/CentOS: `cmake`, `make`
5555
* openSUSE: `cmake`, `make`
5656

57+
### Expat
58+
59+
[Expat](https://libexpat.github.io/) is needed for parsing OSM XML files.
60+
61+
* Debian/Ubuntu: `libexpat1-dev`
62+
* Fedora/CentOS: `expat-devel`
63+
* openSUSE: `libexpat-devel`
64+
* Homebrew: `expat`
65+
66+
### ZLib
67+
68+
[zlib](https://www.zlib.net/) is needed for reading and writing OSM PBF files
69+
and for GZip support when reading and writing XML files.
70+
71+
* Debian/Ubuntu: `zlib1g-dev`
72+
* Fedora/CentOS: `zlib-devel`
73+
* openSUSE: `zlib-devel`
74+
75+
### bz2lib
76+
77+
[bz2lib](https://www.sourceware.org/bzip2/) is needed for BZip2 support when
78+
reading and writing OSM XML files.
79+
80+
* Debian/Ubuntu: `libbz2-dev`
81+
* Fedora/CentOS: `bzip2-devel`
82+
* openSUSE: `libbz2-devel`
83+
84+
### Boost >= 1.55
85+
86+
[Boost](https://www.boost.org/) is used for some (limited) functionality
87+
in libosmium. Many programs using libosmium will not actually need boost
88+
or only need parts of it.
89+
90+
* Boost Iterator is used for Tag filters, and for the Object Pointer Collection.
91+
(needed until libosmium 2.17)
92+
* The CRC32 checksum implementation from boost can be used for calculating
93+
checksums over OSM objects. The implementation in zlib is used otherwise.
94+
* Libosmium versions before 2.6.1 needed Boost for writing PBF files.
95+
* Libosmium from version 2.12.0 uses boost::variant in the osmium::StringMatcher
96+
class.
97+
98+
You need at least Boost version 1.55.
99+
100+
* Debian/Ubuntu: `libboost-dev`
101+
* Fedora/CentOS: `boost-devel`
102+
* openSUSE: `boost-devel`
103+
* Homebrew: `boost`
104+
57105
### Google Protocol Buffers (until version 2.2)
58106

59107
_Not needed any more from version 2.3.0 onwards_
@@ -94,6 +142,8 @@ a version from the git repository.
94142

95143
### Utfcpp (until version 2.14.0)
96144

145+
_Not needed any more from version 2.15.0 onwards_
146+
97147
The [utf8-cpp](http://utfcpp.sourceforge.net/) library is needed for the OPL
98148
output format. A copy of this library is included in the libosmium repository
99149
but not installed by default. Either use the packages of your distribution,
@@ -104,52 +154,11 @@ CMake configuration to install the bundled version.
104154
* Fedora/CentOS: `utf8cpp-devel`
105155
* openSUSE: `utfcpp`
106156

107-
### Expat
108-
109-
[Expat](https://libexpat.github.io/) is needed for parsing OSM XML files.
110-
111-
* Debian/Ubuntu: `libexpat1-dev`
112-
* Fedora/CentOS: `expat-devel`
113-
* openSUSE: `libexpat-devel`
114-
* Homebrew: `expat`
115-
116-
### ZLib
117-
118-
[zlib](https://www.zlib.net/) is needed for reading and writing OSM PBF files
119-
and for GZip support when reading and writing XML files.
120-
121-
* Debian/Ubuntu: `zlib1g-dev`
122-
* Fedora/CentOS: `zlib-devel`
123-
* openSUSE: `zlib-devel`
124-
125-
### bz2lib
126-
127-
[bz2lib](https://www.sourceware.org/bzip2/) is needed for BZip2 support when
128-
reading and writing OSM XML files.
129-
130-
* Debian/Ubuntu: `libbz2-dev`
131-
* Fedora/CentOS: `bzip2-devel`
132-
* openSUSE: `libbz2-devel`
133-
134-
### Boost >= 1.55
135-
136-
[Boost](https://www.boost.org/) Iterator is used for Tag filters, and for the
137-
Object Pointer Collection. The CRC32 checksum implementation from boost is
138-
needed for calculating checksums over OSM objects. Libosmium versions before
139-
2.6.1 also needed Boost for writing PBF files.
140-
141-
You need at least Boost version 1.55.
142-
143-
* Debian/Ubuntu: `libboost-dev`
144-
* Fedora/CentOS: `boost-devel`
145-
* openSUSE: `boost-devel`
146-
* Homebrew: `boost`
147-
148157
## _Extra_ dependencies
149158

150-
### Google Sparsehash
159+
### Google Sparsehash (deprecated)
151160

152-
Google Sparsehash (https://github.com/sparsehash/sparsehash) is needed for
161+
Google Sparsehash (https://github.com/sparsehash/sparsehash) is used for
153162
the `sparse-mem-table` index map, sometimes used as a node location store.
154163
This isn't usually needed any more, because there are better implementations
155164
for the node location store available.
@@ -212,6 +221,10 @@ The [Proj.4](https://proj4.org/) library is needed if you want to
212221
project OSM coordinates into spatial reference systems other than Web Mercator
213222
(EPSG 3857, often named Google Mercator).
214223

224+
Only the old `proj_api.h` based API is supported. If you need this to work
225+
with newer versions of Proj.4, have a look at https://github.com/osmcode/osmium-proj
226+
for some untested experimental code.
227+
215228
* Debian/Ubuntu: `libproj-dev`
216229
* Fedora/CentOS: `proj-devel`, `proj-epsg`
217230
* openSUSE: `libproj-devel`, `proj`
@@ -239,7 +252,7 @@ yourself, you need [Graphviz](https://www.graphviz.org/) in addition to Doxygen.
239252

240253
## Installing dependencies on some Linux systems
241254

242-
### Debian Jessie and newer
255+
### Debian Stretch, Buster, Bullseye or newer
243256

244257
You can install all dependencies with:
245258

@@ -257,15 +270,14 @@ apt-get install -q -y \
257270
libgeos++-dev \
258271
liblz4-dev \
259272
libproj-dev \
260-
libsparsehash-dev \
261273
make \
262274
ruby \
263275
ruby-json \
264276
spatialite-bin \
265277
zlib1g-dev
266278
```
267279

268-
### Ubuntu Xenial (16.04)
280+
### Ubuntu 18.04 or newer
269281

270282
You can install all dependencies with:
271283

@@ -281,16 +293,16 @@ apt-get install -q -y \
281293
libexpat1-dev \
282294
libgdal-dev \
283295
libgeos++-dev \
296+
liblz4-dev \
284297
libproj-dev \
285-
libsparsehash-dev \
286298
make \
287299
ruby \
288300
ruby-json \
289301
spatialite-bin \
290302
zlib1g-dev
291303
```
292304

293-
### Fedora 26
305+
### Fedora
294306

295307
You can install all dependencies with:
296308

@@ -303,15 +315,15 @@ dnf install --quiet --assumeyes \
303315
expat-devel \
304316
gcc-c++ \
305317
gdal-devel \
318+
gdalcpp-static \
306319
geos-devel \
307320
git \
308321
graphviz \
322+
lz4-devel \
309323
make \
310324
proj-devel \
311-
proj-epsg \
312325
ruby \
313326
rubygem-json \
314-
sparsehash-devel \
315327
spatialite-tools \
316328
zlib-devel
317329
```
@@ -335,7 +347,6 @@ zypper --non-interactive --no-color install \
335347
proj \
336348
ruby2.3 \
337349
ruby2.3-rubygem-json \
338-
sparsehash-devel \
339350
zlib-devel
340351
```
341352

@@ -350,6 +361,6 @@ sudo pacman -Suy protobuf boost-libs zlib expat cmake make bzip2
350361
and all extra dependencies with:
351362

352363
``` sh
353-
sudo pacman -Suy sparsehash boost gdal proj doxygen
364+
sudo pacman -Suy boost gdal proj doxygen
354365
```
355366

_libosmium_manual/03_building.md

+1
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,7 @@ This is mostly due to the 64 bit needed for node IDs. Also Osmium hasn't been
152152
tested well on 32 bit systems. Here are some issues you might run into:
153153

154154
* Google Sparsehash does not work on 32 bit machines in our use case.
155+
Support for it is deprecated and will be removed in a future version.
155156
* The `mmap` system call is called with a `size_t` argument, so it can't
156157
give you more than 4GByte of memory on 32 bit systems. This might be a
157158
problem.

_libosmium_manual/05_using.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ find_package(Osmium REQUIRED COMPONENTS io gdal)
8383
* `io` - include libraries needed for any type of input/output
8484
* `gdal` - include if you want to use any of the OGR functions
8585
* `proj` - include if you want to use any of the Proj.4 functions
86-
* `sparsehash` - include if you use the sparsehash index map (`sparse_mem_table`)
86+
* `sparsehash` - include if you use the sparsehash index map (`sparse_mem_table`), deprecated
8787

8888
After that add the include directories:
8989

0 commit comments

Comments
 (0)