Skip to content

Commit 41fd947

Browse files
authored
Update docs to reflect recent build and dependency changes (#6383)
1 parent e328031 commit 41fd947

File tree

5 files changed

+30
-164
lines changed

5 files changed

+30
-164
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
- FIXED: Fix bug with reading Set values from Lua scripts. [#6285](https://github.com/Project-OSRM/osrm-backend/pull/6285)
2424
- FIXED: Bug in bicycle profile that caused exceptions if there is a highway=bicycle in the data. [#6296](https://github.com/Project-OSRM/osrm-backend/pull/6296)
2525
- FIXED: Internal refactoring of identifier types used in data facade [#6044](https://github.com/Project-OSRM/osrm-backend/pull/6044)
26+
- CHANGED: Update docs to reflect recent build and dependency changes [#6383](https://github.com/Project-OSRM/osrm-backend/issues/6383)
2627
- Build:
2728
- ADDED: Build Node bindings on Windows. [#6334](https://github.com/Project-OSRM/osrm-backend/pull/6334)
2829
- ADDED: Configure cross-compilation for Apple Silicon. [#6360](https://github.com/Project-OSRM/osrm-backend/pull/6360)

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ If you want to use the CH pipeline instead replace `osrm-partition` and `osrm-cu
5050

5151
### Using Docker
5252

53-
We base our Docker images ([backend](https://hub.docker.com/r/osrm/osrm-backend/), [frontend](https://hub.docker.com/r/osrm/osrm-frontend/)) on Debian and make sure they are as lightweight as possible.
53+
We base our Docker images ([backend](https://github.com/Project-OSRM/osrm-backend/pkgs/container/osrm-backend), [frontend](https://hub.docker.com/r/osrm/osrm-frontend/)) on Debian and make sure they are as lightweight as possible. Older backend versions can be found on [Docker Hub](https://hub.docker.com/r/osrm/osrm-backend/).
5454

5555
Download OpenStreetMap extracts for example from [Geofabrik](http://download.geofabrik.de/)
5656

@@ -65,7 +65,7 @@ The flag `-v "${PWD}:/data"` creates the directory `/data` inside the docker con
6565
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-partition /data/berlin-latest.osrm
6666
docker run -t -v "${PWD}:/data" osrm/osrm-backend osrm-customize /data/berlin-latest.osrm
6767

68-
Note there is no `berlin-latest.osrm` file, but multiple `berlin-latest.osrm.*` files, i.e. `berlin-latest.osrm` is not file path, but "base" path referring to set of files and there is an option to omit this `.osrm` suffix completely(e.g. `osrm-partition /data/berlin-latest`).
68+
Note there is no `berlin-latest.osrm` file, but multiple `berlin-latest.osrm.*` files, i.e. `berlin-latest.osrm` is not file path, but "base" path referring to set of files and there is an option to omit this `.osrm` suffix completely(e.g. `osrm-partition /data/berlin-latest`).
6969

7070
docker run -t -i -p 5000:5000 -v "${PWD}:/data" osrm/osrm-backend osrm-routed --algorithm mld /data/berlin-latest.osrm
7171

@@ -84,7 +84,7 @@ In case Docker complains about not being able to connect to the Docker daemon ma
8484

8585
After adding yourself to the `docker` group make sure to log out and back in again with your terminal.
8686

87-
We support the following images on Docker Cloud:
87+
We support the following images in the Container Registry:
8888

8989
Name | Description
9090
-----|------
@@ -96,7 +96,7 @@ Name | Description
9696

9797
### Building from Source
9898

99-
The following targets Ubuntu 16.04.
99+
The following targets Ubuntu 22.04.
100100
For instructions how to build on different distributions, macOS or Windows see our [Wiki](https://github.com/Project-OSRM/osrm-backend/wiki).
101101

102102
Install dependencies
@@ -132,13 +132,13 @@ curl "https://router.project-osrm.org/route/v1/driving/13.388860,52.517037;13.38
132132
The Node.js bindings provide read-only access to the routing engine.
133133
We provide API documentation and examples [here](docs/nodejs/api.md).
134134

135-
You will need a modern `libstdc++` toolchain (`>= GLIBCXX_3.4.20`) for binary compatibility if you want to use the pre-built binaries.
135+
You will need a modern `libstdc++` toolchain (`>= GLIBCXX_3.4.26`) for binary compatibility if you want to use the pre-built binaries.
136136
For older Ubuntu systems you can upgrade your standard library for example with:
137137

138138
```
139139
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
140140
sudo apt-get update -y
141-
sudo apt-get install -y libstdc++-5-dev
141+
sudo apt-get install -y libstdc++-9-dev
142142
```
143143

144144
You can install the Node.js bindings via `npm install osrm` or from this repository either via
@@ -151,7 +151,7 @@ which will check and use pre-built binaries if they're available for this releas
151151

152152
to always force building the Node.js bindings from source.
153153

154-
For usage details have a look [these API docs](docs/nodejs/api.md).
154+
For usage details have a look [these API docs](docs/nodejs/api.md).
155155

156156
An exemplary implementation by a 3rd party with Docker and Node.js can be found [here](https://github.com/door2door-io/osrm-express-server-demo).
157157

docs/nodejs/releasing.md

Lines changed: 0 additions & 86 deletions
This file was deleted.

docs/releasing.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,16 @@ We may introduce forward-compatible changes: query parameters and response prope
4444
1. Check out the appropriate release branch `x.y`
4545
2. Make sure `CHANGELOG.md` is up to date.
4646
3. Make sure the `package.json` on branch `x.y` has been committed.
47-
4. Make sure all tests are passing (e.g. Travis CI gives you a :green_apple:)
47+
4. Make sure all tests are passing (e.g. Github Actions CI gives you a :heavy_check_mark:)
4848
5. Use an annotated tag to mark the release: `git tag vx.y.z -a` Body of the tag description should be the changelog entries. Commit should be one in which the `package.json` version matches the version you want to release.
4949
6. Use `npm run docs` to generate the API documentation. Copy `build/docs/*` to `https://github.com/Project-OSRM/project-osrm.github.com` in the `docs/vN.N.N/api` directory
5050
7. Push tags and commits: `git push; git push --tags`
5151
8. On https://github.com/Project-OSRM/osrm-backend/releases press `Draft a new release`,
5252
write the release tag `vx.y.z` in the `Tag version` field, write the changelog entries in the `Describe this release` field
53-
and press `Publish release`. Note that Travis deployments will create a release when publishing node binaries, so the release
53+
and press `Publish release`. Note that Github Actions CI deployments will create a release when publishing node binaries, so the release
5454
may already exist. In which case the description should be updated with the changelog entries.
5555
9. If not a release-candidate: Write a mailing-list post to [email protected] to announce the release
56-
10. Wait until the travis build has been completed and check if the node binaries were published by doing:
56+
10. Wait until the Github Actions build has been completed and check if the node binaries were published by doing:
5757
`rm -rf node_modules && npm install` locally.
5858
11. For final releases run `npm publish` or `npm publish --tag next` for release candidates.
59-
12. Bump version in `package.json` to `{MAJOR}.{MINOR+1}.0-latest.1` on the `master` branch after the release.
59+
12. Bump version in `package.json` to `{MAJOR}.{MINOR+1}.0-unreleased` on the `master` branch after the release.

docs/windows-deps.md

Lines changed: 18 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,31 @@
11
# Building OSRM for Windows
22

3-
## Dependencies
4-
5-
Get a decent Windows with decent Visual Studio (14 at least for C++11 support). The published binaries are build with
6-
VS2019 and Windows SDK8.1.
7-
8-
In case you are using [prepacked Windows VM with VS2019](https://developer.microsoft.com/en-us/windows/downloads/virtual-machines/), you
9-
have to install [Windows SDK 8.1](https://go.microsoft.com/fwlink/p/?LinkId=323507)
10-
11-
Prepare directories for dependencies, build and target file location.Target directory ($target starting from that moment) should have /include and /lib subdirectories.
3+
There is experimental support for building OSRM on Windows.
124

13-
### Bzip2
14-
15-
1. Download from https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz
16-
2. Start 'x64 Native Tools Command Prompt for VS2019' and change directory to unpacked source tree.
17-
3. Issue `nmake /f makefile.msc`
18-
4. Copy bzlib.h to $target\include and libbz2.lib to $target\lib
19-
20-
### ZLib
21-
22-
1. Download https://www.zlib.net/zlib-1.2.11.tar.gz
23-
2. Start 'x64 Native Tools Command Prompt for VS2019' and change directory to unpacked source tree.
24-
3. Switch to `contrib\vstudio\vc14`
25-
4. If needed, open `zlibvc.sln` with Visual Studio and retarget to your version of compiler and SDK.
26-
5. Issue `msbuild zlibvc.sln /p:BuildInParallel=true /p:Configuration=Release /p:Platform=x64 /m:<Number of cpu cores>`
27-
6. Copy x64\ZlibStatRelease\zlibstat.lib to $target\lib\libz.lib, copy zlib.h and zconf.h to $target\include
5+
## Dependencies
286

29-
### ICU
7+
You will need a modern Windows development stack (e.g. Visual Studio 17). The published binaries are built with
8+
[Windows Server 2022](https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md) Github hosted runners.
309

31-
1. Download and unpack.
32-
* https://github.com/unicode-org/icu/releases/download/release-66-1/icu4c-66_1-src.zip
33-
* https://github.com/unicode-org/icu/releases/download/release-66-1/icu4c-66_1-data.zip
34-
2. Do retarget if neededby openinig .\source\allinone\allinone.sln and editing projects
35-
3. Start 'x64 Native Tools Command Prompt for VS2019' and change directory to unpacked source tree.
36-
4. Run build:
37-
msbuild .\source\allinone\allinone.sln /nologo /p:BuildInParallel=true /p:Configuration=Release /p:Platform=x64 /m:<Number of cpu cores>
38-
5. Copy lib64\*.lib to $target\lib, copy include contents to $target\include
39-
6. Copy bin64\*dll to any dir withing your $PATH. At the same time copy them to $target\lib
10+
Dependencies are managed via [Conan](https://conan.io/) and built with [CMake](https://cmake.org/).
4011

41-
### Boost
12+
## Building
4213

43-
1. Download and unpack https://dl.bintray.com/boostorg/release/1.73.0/source/boost_1_73_0.zip
44-
2. Start 'x64 Native Tools Command Prompt for VS2019' and change directory to unpacked source tree.
45-
3. Build b2:
46-
bootstrap.bat --with-toolset=msvc-14.2
47-
4. Build boost:
48-
b2 -a -d release state --build-type=minimal toolset=msvc-14.2 -q runtime-link=shared link=static address-model=64 --with-iostreams --with-test --with-thread --with-filesystem --with-date_time --with-system --with-program_options --with-regex --disable-filesystem2 -sHAVE_ICU=1 include=<target>\include library-path=<target>\lib -sZLIB_SOURCE=<builddir>/zlib -zBZIP2_BINARY=libbz2 -sBZIP2_INCLUDE=<target>\include -sBZIP2_LIBPATH=<target>\lib -sICU_ICUUC_NAME=icuuc -sICU_ICUDT_NAME=icudt -sICU_ICUIN_NAME=icuin -sBUILD=boost_unit_test_framework -j<number of cpu cores>
49-
5. Copy `boost` subdirectory to <target>\include and contents of `stage` to <target>\lib
14+
```bat
15+
cmake -DENABLE_CONAN=ON -DENABLE_NODE_BINDINGS=ON -DCMAKE_BUILD_TYPE=%CONFIGURATION% -G "Visual Studio 17 2022" ..
5016
51-
### Expat
17+
msbuild OSRM.sln ^
18+
/p:Configuration=%CONFIGURATION% ^
19+
/p:Platform=x64 ^
20+
/t:rebuild ^
21+
/p:BuildInParallel=true ^
22+
/m:%NUMBER_OF_PROCESSORS% ^
23+
/toolsversion:Current ^
24+
/clp:Verbosity=normal ^
25+
/nologo
26+
```
5227

53-
1. Download and unpack https://github.com/libexpat/libexpat/archive/R_2_2_9.zip
54-
2. Start 'x64 Native Tools Command Prompt for VS2019' and change directory to unpacked source tree.
55-
3. Configure build my calling cmake:
56-
mkdir expat\build
57-
cd expat\build
58-
cmake -G"Visual Studio 16 2019" -DCMAKE_BUILD_TYPE=Release -DEXPAT_MSVC_STATIC_CRT=ON -DEXPAT_BUILD_EXAMPLES=OFF -DEXPAT_BUILD_TESTS=OFF -DEXPAT_SHARED_LIBS=OFF ..
59-
4. Build expat: `msbuild expat.sln /nologo /p:Configuration=Release /p:Platform=x64`
60-
5. Copy `Release\libexpat.*` to <target>/lib. Copy `expat/lib/expat.h` and `expat/lib/expat_external.h` to <target>/include
6128

62-
### LUA
6329

64-
1. Download and unpack https://www.lua.org/ftp/lua-5.3.5.tar.gz
65-
2. Start 'x64 Native Tools Command Prompt for VS2019' and change directory to unpacked source tree.
66-
3. Lua doesn't have native MSVC support, so you have to compile it by hand:
67-
cd src
68-
cl /MD /O2 /c /DLUA_COMPAT_5_2 *.c
69-
ren lua.obj lua.o
70-
ren luac.obj luac.o
71-
link /LIB /OUT:lua5.3.5.dll *.obj
72-
4. Copy `lua5.3.5.lib` to <target>/lib. Copy `lua.h`,`lauxlib,h`,`lua.hpp`,`lualib.h`,`luaconf.h` to <target>/include
7330

74-
### TBB
7531

76-
1. Download and unpack https://github.com/oneapi-src/oneTBB/archive/v2020.2.zip
77-
2. Retarget by opening build\vs2013\makefile.sln
78-
3. Start 'x64 Native Tools Command Prompt for VS2019' and change directory to unpacked source tree.
79-
4. Switch to build\vs2013 and build: `msbuild makefle.sln /nologo /p:Configuration=Release /p:Platform=x64`
80-
5. Copy x64/Release/*.{dll,lib} files to <target>/lib and copy contents of include directory to <target>/include

0 commit comments

Comments
 (0)