@@ -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+
97147The [ utf8-cpp] ( http://utfcpp.sourceforge.net/ ) library is needed for the OPL
98148output format. A copy of this library is included in the libosmium repository
99149but 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
153162the ` sparse-mem-table ` index map, sometimes used as a node location store.
154163This isn't usually needed any more, because there are better implementations
155164for the node location store available.
@@ -212,6 +221,10 @@ The [Proj.4](https://proj4.org/) library is needed if you want to
212221project 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
244257You 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
270282You 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
295307You 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
350361and 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
0 commit comments