mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 15:47:58 +00:00
Merge pull request #381 from lonvia/cmake-port
Replace autotools with cmake and update osm2pgsql
This commit is contained in:
26
.gitignore
vendored
26
.gitignore
vendored
@@ -1,33 +1,11 @@
|
|||||||
*.log
|
*.log
|
||||||
*.pyc
|
*.pyc
|
||||||
|
|
||||||
nominatim/*.d
|
build
|
||||||
nominatim/*.o
|
|
||||||
nominatim/nominatim
|
|
||||||
module/nominatim.so
|
|
||||||
module/nominatim.o
|
|
||||||
settings/configuration.txt
|
|
||||||
settings/download.lock
|
|
||||||
settings/state.txt
|
|
||||||
settings/local.php
|
settings/local.php
|
||||||
|
|
||||||
.deps/
|
|
||||||
autom4te.cache/
|
|
||||||
config.*
|
|
||||||
configure
|
|
||||||
Makefile
|
|
||||||
!tests/scenes/bin/Makefile
|
|
||||||
Makefile.in
|
|
||||||
stamp-h1
|
|
||||||
missing
|
|
||||||
INSTALL
|
|
||||||
aclocal.m4
|
|
||||||
depcomp
|
|
||||||
install-sh
|
|
||||||
compile
|
|
||||||
|
|
||||||
data/wiki_import.sql
|
data/wiki_import.sql
|
||||||
data/wiki_specialphrases.sql
|
data/wiki_specialphrases.sql
|
||||||
data/osmosischange.osc
|
data/osmosischange.osc
|
||||||
|
|
||||||
.vagrant
|
.vagrant
|
||||||
|
|||||||
104
CMakeLists.txt
Normal file
104
CMakeLists.txt
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# CMake Config
|
||||||
|
#
|
||||||
|
# Nominatim
|
||||||
|
#
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
|
||||||
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
|
||||||
|
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Project version
|
||||||
|
#
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
project(nominatim)
|
||||||
|
|
||||||
|
set(NOMINATIM_VERSION_MAJOR 2)
|
||||||
|
set(NOMINATIM_VERSION_MINOR 5)
|
||||||
|
|
||||||
|
set(NOMINATIM_VERSION "${NOMINATIM_VERSION_MAJOR}.${NOMINATIM_VERSION_MINOR}")
|
||||||
|
|
||||||
|
add_definitions(-DNOMINATIM_VERSION="${NOMINATIM_VERSION}")
|
||||||
|
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Find external dependencies
|
||||||
|
#
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
set(BUILD_TESTS on)
|
||||||
|
add_subdirectory(osm2pgsql)
|
||||||
|
|
||||||
|
find_package(Threads REQUIRED)
|
||||||
|
|
||||||
|
unset(PostgreSQL_TYPE_INCLUDE_DIR CACHE)
|
||||||
|
set(PostgreSQL_TYPE_INCLUDE_DIR "/usr/include/")
|
||||||
|
find_package(PostgreSQL REQUIRED)
|
||||||
|
include_directories(${PostgreSQL_INCLUDE_DIRS})
|
||||||
|
|
||||||
|
find_program(PG_CONFIG pg_config)
|
||||||
|
execute_process(COMMAND ${PG_CONFIG} --pgxs
|
||||||
|
OUTPUT_VARIABLE PGXS
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
||||||
|
find_package(ZLIB REQUIRED)
|
||||||
|
|
||||||
|
find_package(BZip2 REQUIRED)
|
||||||
|
|
||||||
|
find_package(LibXml2 REQUIRED)
|
||||||
|
include_directories(${LIBXML2_INCLUDE_DIR})
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Setup settings and paths
|
||||||
|
#
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${PROJECT_SOURCE_DIR}/settings/settings.php
|
||||||
|
${PROJECT_BINARY_DIR}/settings/settings.php
|
||||||
|
)
|
||||||
|
|
||||||
|
configure_file(
|
||||||
|
${PROJECT_SOURCE_DIR}/settings/phrase_settings.php
|
||||||
|
${PROJECT_BINARY_DIR}/settings/phrase_settings.php
|
||||||
|
)
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND ln -s -t ${PROJECT_BINARY_DIR} ${PROJECT_SOURCE_DIR}/utils
|
||||||
|
)
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Tests
|
||||||
|
#
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
include(CTest)
|
||||||
|
|
||||||
|
set(TEST_BDD db osm2pgsql api)
|
||||||
|
|
||||||
|
foreach (test ${TEST_BDD})
|
||||||
|
add_test(NAME bdd_${test}
|
||||||
|
COMMAND lettuce features/${test}
|
||||||
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests)
|
||||||
|
set_tests_properties(bdd_${test}
|
||||||
|
PROPERTIES ENVIRONMENT "NOMINATIM_DIR=${PROJECT_BINARY_DIR}")
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
add_test(NAME php
|
||||||
|
COMMAND phpunit ./
|
||||||
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests-php)
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
add_subdirectory(module)
|
||||||
|
add_subdirectory(nominatim)
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
27
Makefile.am
27
Makefile.am
@@ -1,27 +0,0 @@
|
|||||||
ACLOCAL_AMFLAGS = -I osm2pgsql/m4
|
|
||||||
AUTOMAKE_OPTIONS = -Wno-portability
|
|
||||||
|
|
||||||
SUBDIRS = osm2pgsql module nominatim
|
|
||||||
|
|
||||||
NOMINATIM_SERVER ?= $(shell echo a | php -F lib/init.php -E 'echo CONST_Website_BaseURL."\n";')
|
|
||||||
NOMINATIM_DATABASE ?= $(shell echo a | php -F lib/init.php -E 'echo DB::parseDSN(CONST_Database_DSN)["database"];')
|
|
||||||
|
|
||||||
install:
|
|
||||||
@echo Nominatim needs to be executed directly from this directory. No install necessary.
|
|
||||||
|
|
||||||
test:
|
|
||||||
cd tests; NOMINATIM_SERVER=${NOMINATIM_SERVER} lettuce -t -Fail -t -poldi-only
|
|
||||||
|
|
||||||
test-fast:
|
|
||||||
cd tests; NOMINATIM_SERVER=${NOMINATIM_SERVER} NOMINATIM_REUSE_TEMPLATE=1 lettuce -t -Fail -t -poldi-only
|
|
||||||
|
|
||||||
test-db:
|
|
||||||
cd tests; NOMINATIM_SERVER=${NOMINATIM_SERVER} lettuce -t -Fail -t -poldi-only features/db
|
|
||||||
|
|
||||||
test-db-fast:
|
|
||||||
cd tests; NOMINATIM_SERVER=${NOMINATIM_SERVER} NOMINATIM_REUSE_TEMPLATE=1 lettuce -t -Fail -t -poldi-only features/db
|
|
||||||
|
|
||||||
test-api:
|
|
||||||
cd tests; NOMINATIM_SERVER=${NOMINATIM_SERVER} lettuce -t -Fail -t -poldi-only features/api
|
|
||||||
|
|
||||||
.PHONY: test test-fast test-db test-db-fast test-api
|
|
||||||
8
README
8
README
@@ -29,13 +29,11 @@ is cloned as well by running `git submodule update --init`.
|
|||||||
|
|
||||||
Installation steps:
|
Installation steps:
|
||||||
|
|
||||||
0. If checking out from git run:
|
|
||||||
|
|
||||||
./autogen.sh
|
|
||||||
|
|
||||||
1. Compile Nominatim:
|
1. Compile Nominatim:
|
||||||
|
|
||||||
./configure
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ..
|
||||||
make
|
make
|
||||||
|
|
||||||
2. Get OSM data and import:
|
2. Get OSM data and import:
|
||||||
|
|||||||
@@ -1,2 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
autoreconf -vfi
|
|
||||||
67
configure.ac
67
configure.ac
@@ -1,67 +0,0 @@
|
|||||||
AC_INIT(Nominatim,2.5)
|
|
||||||
if git rev-parse HEAD 2>/dev/null >/dev/null; then
|
|
||||||
AC_SUBST([PACKAGE_VERSION], [$PACKAGE_VERSION-git-`git rev-parse --short HEAD`])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl Required autoconf version
|
|
||||||
AC_PREREQ(2.61)
|
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([1.9.6 dist-bzip2 std-options check-news])
|
|
||||||
|
|
||||||
dnl Additional macro definitions are in here
|
|
||||||
m4_include([m4/ax_lib_postgresql_svr.m4])
|
|
||||||
AC_CONFIG_MACRO_DIR([osm2pgsql/m4])
|
|
||||||
|
|
||||||
dnl Generate configuration header file
|
|
||||||
AC_CONFIG_HEADER(nominatim/config.h)
|
|
||||||
|
|
||||||
|
|
||||||
dnl Find C compiler
|
|
||||||
AC_PROG_CC
|
|
||||||
|
|
||||||
dnl Find C++ compiler
|
|
||||||
AC_PROG_CXX
|
|
||||||
|
|
||||||
dnl pthread
|
|
||||||
AX_PTHREAD([], [AC_MSG_ERROR([pthread library required])])
|
|
||||||
|
|
||||||
dnl Check for Geos library
|
|
||||||
AX_LIB_GEOS
|
|
||||||
if test "x$GEOS_VERSION" = "x"
|
|
||||||
then
|
|
||||||
AC_MSG_ERROR([required library not found]);
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl Check for Proj library
|
|
||||||
AX_LIB_PROJ
|
|
||||||
if test "$HAVE_PROJ" = "no"
|
|
||||||
then
|
|
||||||
AC_MSG_ERROR([required library not found]);
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
dnl Check for PostgresSQL client library
|
|
||||||
AX_LIB_POSTGRESQL(9.0)
|
|
||||||
if test "x$POSTGRESQL_VERSION" = "x"
|
|
||||||
then
|
|
||||||
AC_MSG_ERROR([postgresql client library not found])
|
|
||||||
fi
|
|
||||||
AX_LIB_POSTGRESQL_SVR(9.0)
|
|
||||||
if test ! -f "$POSTGRESQL_PGXS"
|
|
||||||
then
|
|
||||||
AC_MSG_ERROR([postgresql server development library not found])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl Check for bzip2 library
|
|
||||||
AX_LIB_BZIP2
|
|
||||||
if test "$HAVE_BZIP2" = "no"
|
|
||||||
then
|
|
||||||
AC_MSG_ERROR([required library not found]);
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl Check for libxml2 library
|
|
||||||
AM_PATH_XML2
|
|
||||||
|
|
||||||
AC_CONFIG_SUBDIRS([osm2pgsql])
|
|
||||||
|
|
||||||
AC_OUTPUT(Makefile nominatim/Makefile module/Makefile)
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
# This file includes a small subset of OpenLayers code, designed to be
|
|
||||||
# integrated into another application. It includes only the Layer types
|
|
||||||
# neccesary to create tiled or untiled WMS, and does not include any Controls.
|
|
||||||
# This is the result of what was at the time called "Webmap.js" at the FOSS4G
|
|
||||||
# Web Mapping BOF.
|
|
||||||
|
|
||||||
[first]
|
|
||||||
|
|
||||||
[last]
|
|
||||||
|
|
||||||
[include]
|
|
||||||
OpenLayers/Map.js
|
|
||||||
OpenLayers/Kinetic.js
|
|
||||||
OpenLayers/Geometry/MultiLineString.js
|
|
||||||
OpenLayers/Geometry/MultiPolygon.js
|
|
||||||
OpenLayers/Format/WKT.js
|
|
||||||
OpenLayers/Layer/OSM.js
|
|
||||||
OpenLayers/Layer/Vector.js
|
|
||||||
OpenLayers/Layer/SphericalMercator.js
|
|
||||||
OpenLayers/Control/Attribution.js
|
|
||||||
OpenLayers/Control/KeyboardDefaults.js
|
|
||||||
OpenLayers/Control/Navigation.js
|
|
||||||
OpenLayers/Control/MousePosition.js
|
|
||||||
OpenLayers/Control/PanZoomBar.js
|
|
||||||
OpenLayers/Control/Permalink.js
|
|
||||||
OpenLayers/Control/TouchNavigation.js
|
|
||||||
OpenLayers/Style.js
|
|
||||||
OpenLayers/Protocol/HTTP.js
|
|
||||||
OpenLayers/Projection.js
|
|
||||||
OpenLayers/Renderer/SVG.js
|
|
||||||
OpenLayers/Renderer/VML.js
|
|
||||||
OpenLayers/Renderer/Canvas.js
|
|
||||||
|
|
||||||
[exclude]
|
|
||||||
|
|
||||||
|
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
@define('CONST_BasePath', dirname(dirname(__FILE__)));
|
@define('CONST_BasePath', dirname(dirname(__FILE__)));
|
||||||
|
|
||||||
require_once(CONST_BasePath.'/settings/settings.php');
|
require_once('settings/settings.php');
|
||||||
require_once(CONST_BasePath.'/lib/lib.php');
|
require_once(CONST_BasePath.'/lib/lib.php');
|
||||||
require_once(CONST_BasePath.'/lib/leakybucket.php');
|
require_once(CONST_BasePath.'/lib/leakybucket.php');
|
||||||
require_once(CONST_BasePath.'/lib/db.php');
|
require_once(CONST_BasePath.'/lib/db.php');
|
||||||
|
|||||||
@@ -1,125 +0,0 @@
|
|||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_LIB_POSTGRESQL_SVR([MINIMUM-VERSION])
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# This macro provides tests of availability of PostgreSQL server library
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(POSTGRESQL_PGXS)
|
|
||||||
# AC_SUBST(POSTGRESQL_SERVER_CFLAGS)
|
|
||||||
#
|
|
||||||
# LICENSE
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 Mateusz Loskot <mateusz@loskot.net>
|
|
||||||
# Copyright (c) 2015 Sarah Hoffmann <lonia@denofr.de>
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_LIB_POSTGRESQL_SVR],
|
|
||||||
[
|
|
||||||
AC_ARG_WITH([postgresql],
|
|
||||||
AC_HELP_STRING([--with-postgresql-svr=@<:@ARG@:>@],
|
|
||||||
[use PostgreSQL server library @<:@default=yes@:>@, optionally specify path to pg_config]
|
|
||||||
),
|
|
||||||
[
|
|
||||||
if test "$withval" = "no"; then
|
|
||||||
want_postgresql="no"
|
|
||||||
elif test "$withval" = "yes"; then
|
|
||||||
want_postgresql="yes"
|
|
||||||
else
|
|
||||||
want_postgresql="yes"
|
|
||||||
PG_CONFIG="$withval"
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[want_postgresql="yes"]
|
|
||||||
)
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Check PostgreSQL server libraries
|
|
||||||
dnl
|
|
||||||
|
|
||||||
if test "$want_postgresql" = "yes"; then
|
|
||||||
|
|
||||||
if test -z "$PG_CONFIG" -o test; then
|
|
||||||
AC_PATH_PROG([PG_CONFIG], [pg_config], [])
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test ! -x "$PG_CONFIG"; then
|
|
||||||
AC_MSG_ERROR([$PG_CONFIG does not exist or it is not an exectuable file])
|
|
||||||
PG_CONFIG="no"
|
|
||||||
found_postgresql="no"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$PG_CONFIG" != "no"; then
|
|
||||||
AC_MSG_CHECKING([for PostgreSQL server libraries])
|
|
||||||
|
|
||||||
POSTGRESQL_SERVER_CFLAGS="-I`$PG_CONFIG --includedir-server`"
|
|
||||||
|
|
||||||
POSTGRESQL_VERSION=`$PG_CONFIG --version | sed -e 's#PostgreSQL ##'`
|
|
||||||
|
|
||||||
POSTGRESQL_PGXS=`$PG_CONFIG --pgxs`
|
|
||||||
if test -f "$POSTGRESQL_PGXS"
|
|
||||||
then
|
|
||||||
found_postgresql="yes"
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
found_postgresql="no"
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Check if required version of PostgreSQL is available
|
|
||||||
dnl
|
|
||||||
|
|
||||||
|
|
||||||
postgresql_version_req=ifelse([$1], [], [], [$1])
|
|
||||||
|
|
||||||
if test "$found_postgresql" = "yes" -a -n "$postgresql_version_req"; then
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([if PostgreSQL version is >= $postgresql_version_req])
|
|
||||||
|
|
||||||
dnl Decompose required version string of PostgreSQL
|
|
||||||
dnl and calculate its number representation
|
|
||||||
postgresql_version_req_major=`expr $postgresql_version_req : '\([[0-9]]*\)'`
|
|
||||||
postgresql_version_req_minor=`expr $postgresql_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
|
|
||||||
postgresql_version_req_micro=`expr $postgresql_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
|
|
||||||
if test "x$postgresql_version_req_micro" = "x"; then
|
|
||||||
postgresql_version_req_micro="0"
|
|
||||||
fi
|
|
||||||
|
|
||||||
postgresql_version_req_number=`expr $postgresql_version_req_major \* 1000000 \
|
|
||||||
\+ $postgresql_version_req_minor \* 1000 \
|
|
||||||
\+ $postgresql_version_req_micro`
|
|
||||||
|
|
||||||
dnl Decompose version string of installed PostgreSQL
|
|
||||||
dnl and calculate its number representation
|
|
||||||
postgresql_version_major=`expr $POSTGRESQL_VERSION : '\([[0-9]]*\)'`
|
|
||||||
postgresql_version_minor=`expr $POSTGRESQL_VERSION : '[[0-9]]*\.\([[0-9]]*\)'`
|
|
||||||
postgresql_version_micro=`expr $POSTGRESQL_VERSION : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
|
|
||||||
if test "x$postgresql_version_micro" = "x"; then
|
|
||||||
postgresql_version_micro="0"
|
|
||||||
fi
|
|
||||||
|
|
||||||
postgresql_version_number=`expr $postgresql_version_major \* 1000000 \
|
|
||||||
\+ $postgresql_version_minor \* 1000 \
|
|
||||||
\+ $postgresql_version_micro`
|
|
||||||
|
|
||||||
postgresql_version_check=`expr $postgresql_version_number \>\= $postgresql_version_req_number`
|
|
||||||
if test "$postgresql_version_check" = "1"; then
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST([POSTGRESQL_PGXS])
|
|
||||||
AC_SUBST([POSTGRESQL_SERVER_CFLAGS])
|
|
||||||
])
|
|
||||||
|
|
||||||
@@ -1,150 +0,0 @@
|
|||||||
# SYNOPSIS
|
|
||||||
#
|
|
||||||
# AX_LIB_XML2([MINIMUM-VERSION])
|
|
||||||
#
|
|
||||||
# DESCRIPTION
|
|
||||||
#
|
|
||||||
# This macro provides tests of availability of xml2 'libxml2' library
|
|
||||||
# of particular version or newer.
|
|
||||||
#
|
|
||||||
# AX_LIB_LIBXML2 macro takes only one argument which is optional. If
|
|
||||||
# there is no required version passed, then macro does not run version
|
|
||||||
# test.
|
|
||||||
#
|
|
||||||
# The --with-libxml2 option takes one of three possible values:
|
|
||||||
#
|
|
||||||
# no - do not check for xml2 library
|
|
||||||
#
|
|
||||||
# yes - do check for xml2 library in standard locations (xml2-config
|
|
||||||
# should be in the PATH)
|
|
||||||
#
|
|
||||||
# path - complete path to xml2-config utility, use this option if xml2-config
|
|
||||||
# can't be found in the PATH
|
|
||||||
#
|
|
||||||
# This macro calls:
|
|
||||||
#
|
|
||||||
# AC_SUBST(XML2_CFLAGS)
|
|
||||||
# AC_SUBST(XML2_LDFLAGS)
|
|
||||||
# AC_SUBST(XML2_VERSION)
|
|
||||||
#
|
|
||||||
# And sets:
|
|
||||||
#
|
|
||||||
# HAVE_XML2
|
|
||||||
#
|
|
||||||
# LICENSE
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Hartmut Holzgraefe <hartmut@php.net>
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification, are
|
|
||||||
# permitted in any medium without royalty provided the copyright notice
|
|
||||||
# and this notice are preserved.
|
|
||||||
|
|
||||||
AC_DEFUN([AX_LIB_XML2],
|
|
||||||
[
|
|
||||||
AC_ARG_WITH([libxml2],
|
|
||||||
AC_HELP_STRING([--with-libxml2=@<:@ARG@:>@],
|
|
||||||
[use libxml2 library @<:@default=yes@:>@, optionally specify path to xml2-config]
|
|
||||||
),
|
|
||||||
[
|
|
||||||
if test "$withval" = "no"; then
|
|
||||||
want_libxml2="no"
|
|
||||||
elif test "$withval" = "yes"; then
|
|
||||||
want_libxml2="yes"
|
|
||||||
else
|
|
||||||
want_libxml2="yes"
|
|
||||||
XML2_CONFIG="$withval"
|
|
||||||
fi
|
|
||||||
],
|
|
||||||
[want_libxml2="yes"]
|
|
||||||
)
|
|
||||||
|
|
||||||
XML2_CFLAGS=""
|
|
||||||
XML2_LDFLAGS=""
|
|
||||||
XML2_VERSION=""
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Check xml2 libraries (libxml2)
|
|
||||||
dnl
|
|
||||||
|
|
||||||
if test "$want_libxml2" = "yes"; then
|
|
||||||
|
|
||||||
if test -z "$XML2_CONFIG" -o test; then
|
|
||||||
AC_PATH_PROG([XML2_CONFIG], [xml2-config], [])
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test ! -x "$XML2_CONFIG"; then
|
|
||||||
AC_MSG_ERROR([$XML2_CONFIG does not exist or it is not an exectuable file])
|
|
||||||
XML2_CONFIG="no"
|
|
||||||
found_libxml2="no"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "$XML2_CONFIG" != "no"; then
|
|
||||||
AC_MSG_CHECKING([for xml2 libraries])
|
|
||||||
|
|
||||||
XML2_CFLAGS="`$XML2_CONFIG --cflags`"
|
|
||||||
XML2_LDFLAGS="`$XML2_CONFIG --libs`"
|
|
||||||
|
|
||||||
XML2_VERSION=`$XML2_CONFIG --version`
|
|
||||||
|
|
||||||
AC_DEFINE([HAVE_XML2], [1],
|
|
||||||
[Define to 1 if xml2 libraries are available])
|
|
||||||
|
|
||||||
found_libxml2="yes"
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
else
|
|
||||||
found_libxml2="no"
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl
|
|
||||||
dnl Check if required version of xml2 is available
|
|
||||||
dnl
|
|
||||||
|
|
||||||
|
|
||||||
libxml2_version_req=ifelse([$1], [], [], [$1])
|
|
||||||
|
|
||||||
|
|
||||||
if test "$found_libxml2" = "yes" -a -n "$libxml2_version_req"; then
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([if libxml2 version is >= $libxml2_version_req])
|
|
||||||
|
|
||||||
dnl Decompose required version string of libxml2
|
|
||||||
dnl and calculate its number representation
|
|
||||||
libxml2_version_req_major=`expr $libxml2_version_req : '\([[0-9]]*\)'`
|
|
||||||
libxml2_version_req_minor=`expr $libxml2_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
|
|
||||||
libxml2_version_req_micro=`expr $libxml2_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
|
|
||||||
if test "x$libxml2_version_req_micro" = "x"; then
|
|
||||||
libxml2_version_req_micro="0"
|
|
||||||
fi
|
|
||||||
|
|
||||||
libxml2_version_req_number=`expr $libxml2_version_req_major \* 1000000 \
|
|
||||||
\+ $libxml2_version_req_minor \* 1000 \
|
|
||||||
\+ $libxml2_version_req_micro`
|
|
||||||
|
|
||||||
dnl Decompose version string of installed PostgreSQL
|
|
||||||
dnl and calculate its number representation
|
|
||||||
libxml2_version_major=`expr $XML2_VERSION : '\([[0-9]]*\)'`
|
|
||||||
libxml2_version_minor=`expr $XML2_VERSION : '[[0-9]]*\.\([[0-9]]*\)'`
|
|
||||||
libxml2_version_micro=`expr $XML2_VERSION : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
|
|
||||||
if test "x$libxml2_version_micro" = "x"; then
|
|
||||||
libxml2_version_micro="0"
|
|
||||||
fi
|
|
||||||
|
|
||||||
libxml2_version_number=`expr $libxml2_version_major \* 1000000 \
|
|
||||||
\+ $libxml2_version_minor \* 1000 \
|
|
||||||
\+ $libxml2_version_micro`
|
|
||||||
|
|
||||||
libxml2_version_check=`expr $libxml2_version_number \>\= $libxml2_version_req_number`
|
|
||||||
if test "$libxml2_version_check" = "1"; then
|
|
||||||
AC_MSG_RESULT([yes])
|
|
||||||
else
|
|
||||||
AC_MSG_RESULT([no])
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_SUBST([XML2_VERSION])
|
|
||||||
AC_SUBST([XML2_CFLAGS])
|
|
||||||
AC_SUBST([XML2_LDFLAGS])
|
|
||||||
])
|
|
||||||
|
|
||||||
10
module/CMakeLists.txt
Normal file
10
module/CMakeLists.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# just use the pgxs makefile
|
||||||
|
ADD_CUSTOM_COMMAND( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/dummy
|
||||||
|
COMMAND PGXS=${PGXS} PG_CONFIG=${PG_CONFIG} make -f ${CMAKE_CURRENT_SOURCE_DIR}/Makefile
|
||||||
|
COMMENT "Running external makefile ${PGXS}"
|
||||||
|
)
|
||||||
|
|
||||||
|
ADD_CUSTOM_TARGET( nominatim_lib ALL
|
||||||
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/dummy
|
||||||
|
)
|
||||||
|
|
||||||
@@ -1,6 +1,4 @@
|
|||||||
MODULES = nominatim
|
MODULES = nominatim
|
||||||
PGXS := @POSTGRESQL_PGXS@
|
|
||||||
PG_CONFIG := @PG_CONFIG@
|
|
||||||
include $(PGXS)
|
include $(PGXS)
|
||||||
|
|
||||||
all:
|
all:
|
||||||
4
nominatim/CMakeLists.txt
Normal file
4
nominatim/CMakeLists.txt
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
add_executable(nominatim export.c geometry.cpp import.c index.c input.c nominatim.c postgresql.c sprompt.c)
|
||||||
|
|
||||||
|
target_link_libraries(nominatim ${LIBXML2_LIBRARIES} ${ZLIB_LIBRARIES} ${BZIP2_LIBRARIES} ${PostgreSQL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
bin_PROGRAMS = nominatim
|
|
||||||
|
|
||||||
nominatim_SOURCES = export.c geometry.cpp import.c index.c input.c nominatim.c postgresql.c sprompt.c
|
|
||||||
|
|
||||||
AM_CFLAGS = @PTHREAD_CFLAGS@ @POSTGRESQL_CPPFLAGS@ @XML_CPPFLAGS@ @BZIP2_CFLAGS@ @GEOS_CFLAGS@ @PROJ_CFLAGS@ -DVERSION='"@PACKAGE_VERSION@"'
|
|
||||||
AM_CPPFLAGS = @PTHREAD_CFLAGS@ @POSTGRESQL_CPPFLAGS@ @XML_CPPFLAGS@ @BZIP2_CFLAGS@ @GEOS_CFLAGS@ @PROJ_CFLAGS@
|
|
||||||
|
|
||||||
nominatim_LDADD = @PTHREAD_CFLAGS@ @POSTGRESQL_LDFLAGS@ @POSTGRESQL_LIBS@ @XML_LIBS@ @BZIP2_LDFLAGS@ @BZIP2_LIBS@ @GEOS_LDFLAGS@ @GEOS_LIBS@ @PROJ_LDFLAGS@ @PROJ_LIBS@ -lz
|
|
||||||
|
|
||||||
@@ -115,7 +115,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
PGconn *conn;
|
PGconn *conn;
|
||||||
|
|
||||||
fprintf(stderr, "nominatim version %s\n\n", VERSION);
|
fprintf(stderr, "nominatim version %s\n\n", NOMINATIM_VERSION);
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
|
|||||||
Submodule osm2pgsql updated: 8179cdb67e...fa6a8102e7
@@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
if (file_exists(CONST_BasePath.'/settings/local.php')) require_once(CONST_BasePath.'/settings/local.php');
|
@define('CONST_InstallPath', dirname(dirname(__FILE__)));
|
||||||
|
if (file_exists(CONST_InstallPath.'/settings/local.php')) require_once(CONST_InstallPath.'/settings/local.php');
|
||||||
if (isset($_GET['debug']) && $_GET['debug']) @define('CONST_Debug', true);
|
if (isset($_GET['debug']) && $_GET['debug']) @define('CONST_Debug', true);
|
||||||
|
|
||||||
// General settings
|
// General settings
|
||||||
@@ -23,7 +24,7 @@
|
|||||||
// Paths
|
// Paths
|
||||||
@define('CONST_Path_Postgresql_Contrib', '/usr/share/postgresql/'.CONST_Postgresql_Version.'/contrib');
|
@define('CONST_Path_Postgresql_Contrib', '/usr/share/postgresql/'.CONST_Postgresql_Version.'/contrib');
|
||||||
@define('CONST_Path_Postgresql_Postgis', CONST_Path_Postgresql_Contrib.'/postgis-'.CONST_Postgis_Version);
|
@define('CONST_Path_Postgresql_Postgis', CONST_Path_Postgresql_Contrib.'/postgis-'.CONST_Postgis_Version);
|
||||||
@define('CONST_Osm2pgsql_Binary', CONST_BasePath.'/osm2pgsql/osm2pgsql');
|
@define('CONST_Osm2pgsql_Binary', CONST_InstallPath.'/osm2pgsql/osm2pgsql');
|
||||||
@define('CONST_Osmosis_Binary', '/usr/bin/osmosis');
|
@define('CONST_Osmosis_Binary', '/usr/bin/osmosis');
|
||||||
@define('CONST_Tiger_Data_Path', CONST_BasePath.'/data/tiger');
|
@define('CONST_Tiger_Data_Path', CONST_BasePath.'/data/tiger');
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import psycopg2
|
|||||||
import psycopg2.extensions
|
import psycopg2.extensions
|
||||||
import psycopg2.extras
|
import psycopg2.extras
|
||||||
import os
|
import os
|
||||||
import subprocess
|
|
||||||
import random
|
import random
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
|
|||||||
@@ -266,7 +266,8 @@ def query_cmd(step, query, with_dups):
|
|||||||
'--search', query]
|
'--search', query]
|
||||||
if with_dups is not None:
|
if with_dups is not None:
|
||||||
cmd.append('--nodedupe')
|
cmd.append('--nodedupe')
|
||||||
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
proc = subprocess.Popen(cmd, cwd=world.config.source_dir,
|
||||||
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
(outp, err) = proc.communicate()
|
(outp, err) = proc.communicate()
|
||||||
assert (proc.returncode == 0), "query.php failed with message: %s" % err
|
assert (proc.returncode == 0), "query.php failed with message: %s" % err
|
||||||
world.page = outp
|
world.page = outp
|
||||||
|
|||||||
@@ -155,7 +155,8 @@ def osm2pgsql_load_place(step):
|
|||||||
|
|
||||||
cmd = [os.path.join(world.config.source_dir, 'utils', 'setup.php')]
|
cmd = [os.path.join(world.config.source_dir, 'utils', 'setup.php')]
|
||||||
cmd.extend(['--osm-file', fname, '--import-data','--osm2pgsql-cache', '300'])
|
cmd.extend(['--osm-file', fname, '--import-data','--osm2pgsql-cache', '300'])
|
||||||
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
proc = subprocess.Popen(cmd, cwd=world.config.source_dir,
|
||||||
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
(outp, outerr) = proc.communicate()
|
(outp, outerr) = proc.communicate()
|
||||||
assert (proc.returncode == 0), "OSM data import failed:\n%s\n%s\n" % (outp, outerr)
|
assert (proc.returncode == 0), "OSM data import failed:\n%s\n%s\n" % (outp, outerr)
|
||||||
|
|
||||||
@@ -204,7 +205,8 @@ def osm2pgsql_update_place(step):
|
|||||||
|
|
||||||
cmd = [os.path.join(world.config.source_dir, 'utils', 'update.php')]
|
cmd = [os.path.join(world.config.source_dir, 'utils', 'update.php')]
|
||||||
cmd.extend(['--import-diff', fname])
|
cmd.extend(['--import-diff', fname])
|
||||||
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
proc = subprocess.Popen(cmd, cwd=world.config.source_dir,
|
||||||
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
(outp, outerr) = proc.communicate()
|
(outp, outerr) = proc.communicate()
|
||||||
assert (proc.returncode == 0), "OSM data update failed:\n%s\n%s\n" % (outp, outerr)
|
assert (proc.returncode == 0), "OSM data update failed:\n%s\n%s\n" % (outp, outerr)
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class NominatimConfig:
|
|||||||
logging.basicConfig(level=loglevel)
|
logging.basicConfig(level=loglevel)
|
||||||
# Nominatim test setup
|
# Nominatim test setup
|
||||||
self.base_url = os.environ.get('NOMINATIM_SERVER', 'http://localhost/nominatim')
|
self.base_url = os.environ.get('NOMINATIM_SERVER', 'http://localhost/nominatim')
|
||||||
self.source_dir = os.path.abspath(os.environ.get('NOMINATIM_DIR', '..'))
|
self.source_dir = os.path.abspath(os.environ.get('NOMINATIM_DIR', '../build'))
|
||||||
self.template_db = os.environ.get('TEMPLATE_DB', 'test_template_nominatim')
|
self.template_db = os.environ.get('TEMPLATE_DB', 'test_template_nominatim')
|
||||||
self.test_db = os.environ.get('TEST_DB', 'test_nominatim')
|
self.test_db = os.environ.get('TEST_DB', 'test_nominatim')
|
||||||
self.local_settings_file = os.environ.get('NOMINATIM_SETTINGS', '/tmp/nominatim_settings.php')
|
self.local_settings_file = os.environ.get('NOMINATIM_SETTINGS', '/tmp/nominatim_settings.php')
|
||||||
@@ -52,7 +52,8 @@ def write_nominatim_config(dbname):
|
|||||||
def run_nominatim_script(script, *args):
|
def run_nominatim_script(script, *args):
|
||||||
cmd = [os.path.join(world.config.source_dir, 'utils', '%s.php' % script)]
|
cmd = [os.path.join(world.config.source_dir, 'utils', '%s.php' % script)]
|
||||||
cmd.extend(['--%s' % x for x in args])
|
cmd.extend(['--%s' % x for x in args])
|
||||||
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
proc = subprocess.Popen(cmd, cwd=world.config.source_dir,
|
||||||
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
(outp, outerr) = proc.communicate()
|
(outp, outerr) = proc.communicate()
|
||||||
assert (proc.returncode == 0), "Script '%s' failed:\n%s\n%s\n" % (script, outp, outerr)
|
assert (proc.returncode == 0), "Script '%s' failed:\n%s\n%s\n" % (script, outp, outerr)
|
||||||
|
|
||||||
@@ -176,8 +177,9 @@ def db_template_setup():
|
|||||||
conn.close()
|
conn.close()
|
||||||
# execute osm2pgsql on an empty file to get the right tables
|
# execute osm2pgsql on an empty file to get the right tables
|
||||||
osm2pgsql = os.path.join(world.config.source_dir, 'osm2pgsql', 'osm2pgsql')
|
osm2pgsql = os.path.join(world.config.source_dir, 'osm2pgsql', 'osm2pgsql')
|
||||||
proc = subprocess.Popen([osm2pgsql, '-lsc', '-O', 'gazetteer', '-d', world.config.template_db, '-'],
|
proc = subprocess.Popen([osm2pgsql, '-lsc', '-r', 'xml', '-O', 'gazetteer', '-d', world.config.template_db, '-'],
|
||||||
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
cwd=world.config.source_dir, stdin=subprocess.PIPE,
|
||||||
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
[outstr, errstr] = proc.communicate(input='<osm version="0.6"></osm>')
|
[outstr, errstr] = proc.communicate(input='<osm version="0.6"></osm>')
|
||||||
world.run_nominatim_script('setup', 'create-functions', 'create-tables', 'create-partition-tables', 'create-partition-functions', 'load-data', 'create-search-indices')
|
world.run_nominatim_script('setup', 'create-functions', 'create-tables', 'create-partition-tables', 'create-partition-functions', 'load-data', 'create-search-indices')
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
);
|
);
|
||||||
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
|
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
|
||||||
|
|
||||||
include(CONST_BasePath.'/settings/phrase_settings.php');
|
include(CONST_InstallPath.'/settings/phrase_settings.php');
|
||||||
|
|
||||||
if (true)
|
if (true)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -219,9 +219,9 @@
|
|||||||
{
|
{
|
||||||
echo "Functions\n";
|
echo "Functions\n";
|
||||||
$bDidSomething = true;
|
$bDidSomething = true;
|
||||||
if (!file_exists(CONST_BasePath.'/module/nominatim.so')) fail("nominatim module not built");
|
if (!file_exists(CONST_InstallPath.'/module/nominatim.so')) fail("nominatim module not built");
|
||||||
$sTemplate = file_get_contents(CONST_BasePath.'/sql/functions.sql');
|
$sTemplate = file_get_contents(CONST_BasePath.'/sql/functions.sql');
|
||||||
$sTemplate = str_replace('{modulepath}', CONST_BasePath.'/module', $sTemplate);
|
$sTemplate = str_replace('{modulepath}', CONST_InstallPath.'/module', $sTemplate);
|
||||||
if ($aCMDResult['enable-diff-updates']) $sTemplate = str_replace('RETURN NEW; -- @DIFFUPDATES@', '--', $sTemplate);
|
if ($aCMDResult['enable-diff-updates']) $sTemplate = str_replace('RETURN NEW; -- @DIFFUPDATES@', '--', $sTemplate);
|
||||||
if ($aCMDResult['enable-debug-statements']) $sTemplate = str_replace('--DEBUG:', '', $sTemplate);
|
if ($aCMDResult['enable-debug-statements']) $sTemplate = str_replace('--DEBUG:', '', $sTemplate);
|
||||||
if (CONST_Limit_Reindexing) $sTemplate = str_replace('--LIMIT INDEXING:', '', $sTemplate);
|
if (CONST_Limit_Reindexing) $sTemplate = str_replace('--LIMIT INDEXING:', '', $sTemplate);
|
||||||
@@ -292,7 +292,7 @@
|
|||||||
echo "Functions\n";
|
echo "Functions\n";
|
||||||
$sTemplate = file_get_contents(CONST_BasePath.'/sql/functions.sql');
|
$sTemplate = file_get_contents(CONST_BasePath.'/sql/functions.sql');
|
||||||
$sTemplate = str_replace('{modulepath}',
|
$sTemplate = str_replace('{modulepath}',
|
||||||
CONST_BasePath.'/module', $sTemplate);
|
CONST_InstallPath.'/module', $sTemplate);
|
||||||
pgsqlRunScript($sTemplate);
|
pgsqlRunScript($sTemplate);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -573,16 +573,16 @@
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (file_exists(CONST_BasePath.'/settings/configuration.txt'))
|
if (file_exists(CONST_InstallPath.'/settings/configuration.txt'))
|
||||||
{
|
{
|
||||||
echo "settings/configuration.txt already exists\n";
|
echo "settings/configuration.txt already exists\n";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
passthru(CONST_Osmosis_Binary.' --read-replication-interval-init '.CONST_BasePath.'/settings');
|
passthru(CONST_Osmosis_Binary.' --read-replication-interval-init '.CONST_InstallPath.'/settings');
|
||||||
// update osmosis configuration.txt with our settings
|
// update osmosis configuration.txt with our settings
|
||||||
passthru("sed -i 's!baseUrl=.*!baseUrl=".CONST_Replication_Url."!' ".CONST_BasePath.'/settings/configuration.txt');
|
passthru("sed -i 's!baseUrl=.*!baseUrl=".CONST_Replication_Url."!' ".CONST_InstallPath.'/settings/configuration.txt');
|
||||||
passthru("sed -i 's:maxInterval = .*:maxInterval = ".CONST_Replication_MaxInterval.":' ".CONST_BasePath.'/settings/configuration.txt');
|
passthru("sed -i 's:maxInterval = .*:maxInterval = ".CONST_Replication_MaxInterval.":' ".CONST_InstallPath.'/settings/configuration.txt');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find the last node in the DB
|
// Find the last node in the DB
|
||||||
@@ -636,7 +636,7 @@
|
|||||||
echo "Getting state file: $sRepURL\n";
|
echo "Getting state file: $sRepURL\n";
|
||||||
$sStateFile = file_get_contents($sRepURL);
|
$sStateFile = file_get_contents($sRepURL);
|
||||||
if (!$sStateFile || strlen($sStateFile) > 1000) fail("unable to obtain state file");
|
if (!$sStateFile || strlen($sStateFile) > 1000) fail("unable to obtain state file");
|
||||||
file_put_contents(CONST_BasePath.'/settings/state.txt', $sStateFile);
|
file_put_contents(CONST_InstallPath.'/settings/state.txt', $sStateFile);
|
||||||
echo "Updating DB status\n";
|
echo "Updating DB status\n";
|
||||||
pg_query($oDB->connection, 'TRUNCATE import_status');
|
pg_query($oDB->connection, 'TRUNCATE import_status');
|
||||||
$sSQL = "INSERT INTO import_status VALUES('".$aRepMatch[2]."')";
|
$sSQL = "INSERT INTO import_status VALUES('".$aRepMatch[2]."')";
|
||||||
@@ -657,7 +657,7 @@
|
|||||||
$bDidSomething = true;
|
$bDidSomething = true;
|
||||||
$sOutputFile = '';
|
$sOutputFile = '';
|
||||||
if (isset($aCMDResult['index-output'])) $sOutputFile = ' -F '.$aCMDResult['index-output'];
|
if (isset($aCMDResult['index-output'])) $sOutputFile = ' -F '.$aCMDResult['index-output'];
|
||||||
$sBaseCmd = CONST_BasePath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$iInstances.$sOutputFile;
|
$sBaseCmd = CONST_InstallPath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$iInstances.$sOutputFile;
|
||||||
passthruCheckReturn($sBaseCmd.' -R 4');
|
passthruCheckReturn($sBaseCmd.' -R 4');
|
||||||
if (!$aCMDResult['index-noanalyse']) pgsqlRunScript('ANALYSE');
|
if (!$aCMDResult['index-noanalyse']) pgsqlRunScript('ANALYSE');
|
||||||
passthruCheckReturn($sBaseCmd.' -r 5 -R 25');
|
passthruCheckReturn($sBaseCmd.' -r 5 -R 25');
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
);
|
);
|
||||||
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
|
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
|
||||||
|
|
||||||
include(CONST_BasePath.'/settings/phrase_settings.php');
|
include(CONST_InstallPath.'/settings/phrase_settings.php');
|
||||||
|
|
||||||
|
|
||||||
if ($aCMDResult['countries']) {
|
if ($aCMDResult['countries']) {
|
||||||
|
|||||||
@@ -64,9 +64,6 @@
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Assume osm2pgsql is in the folder above
|
|
||||||
$sBasePath = dirname(dirname(__FILE__));
|
|
||||||
|
|
||||||
date_default_timezone_set('Etc/UTC');
|
date_default_timezone_set('Etc/UTC');
|
||||||
|
|
||||||
$oDB =& getDB();
|
$oDB =& getDB();
|
||||||
@@ -349,7 +346,7 @@
|
|||||||
|
|
||||||
if ($aResult['index'])
|
if ($aResult['index'])
|
||||||
{
|
{
|
||||||
passthru(CONST_BasePath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$aResult['index-instances'].' -r '.$aResult['index-rank']);
|
passthru(CONST_InstallPath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$aResult['index-instances'].' -r '.$aResult['index-rank']);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($aResult['import-osmosis'] || $aResult['import-osmosis-all'])
|
if ($aResult['import-osmosis'] || $aResult['import-osmosis-all'])
|
||||||
@@ -361,11 +358,11 @@
|
|||||||
|
|
||||||
$sImportFile = CONST_BasePath.'/data/osmosischange.osc';
|
$sImportFile = CONST_BasePath.'/data/osmosischange.osc';
|
||||||
$sOsmosisCMD = CONST_Osmosis_Binary;
|
$sOsmosisCMD = CONST_Osmosis_Binary;
|
||||||
$sOsmosisConfigDirectory = CONST_BasePath.'/settings';
|
$sOsmosisConfigDirectory = CONST_InstallPath.'/settings';
|
||||||
$sCMDDownload = $sOsmosisCMD.' --read-replication-interval workingDirectory='.$sOsmosisConfigDirectory.' --simplify-change --write-xml-change '.$sImportFile;
|
$sCMDDownload = $sOsmosisCMD.' --read-replication-interval workingDirectory='.$sOsmosisConfigDirectory.' --simplify-change --write-xml-change '.$sImportFile;
|
||||||
$sCMDCheckReplicationLag = $sOsmosisCMD.' -q --read-replication-lag workingDirectory='.$sOsmosisConfigDirectory;
|
$sCMDCheckReplicationLag = $sOsmosisCMD.' -q --read-replication-lag workingDirectory='.$sOsmosisConfigDirectory;
|
||||||
$sCMDImport = $sOsm2pgsqlCmd.' '.$sImportFile;
|
$sCMDImport = $sOsm2pgsqlCmd.' '.$sImportFile;
|
||||||
$sCMDIndex = $sBasePath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$aResult['index-instances'];
|
$sCMDIndex = $sInstallPath.'/nominatim/nominatim -i -d '.$aDSNInfo['database'].' -P '.$aDSNInfo['port'].' -t '.$aResult['index-instances'];
|
||||||
if (!$aResult['no-npi']) {
|
if (!$aResult['no-npi']) {
|
||||||
$sCMDIndex .= '-F ';
|
$sCMDIndex .= '-F ';
|
||||||
}
|
}
|
||||||
@@ -542,8 +539,8 @@
|
|||||||
var_dump($iNPIID);
|
var_dump($iNPIID);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
$sConfigDirectory = CONST_BasePath.'/settings';
|
$sConfigDirectory = CONST_InstallPath.'/settings';
|
||||||
$sCMDImportTemplate = $sBasePath.'/nominatim/nominatim -d gazetteer -P 5433 -I -T '.$sBasePath.'/nominatim/partitionedtags.def -F ';
|
$sCMDImportTemplate = $sBasePath.'/nominatim/nominatim -d gazetteer -P 5433 -I -T '.CONST_BasePath.'/nominatim/partitionedtags.def -F ';
|
||||||
while(true)
|
while(true)
|
||||||
{
|
{
|
||||||
$fStartTime = time();
|
$fStartTime = time();
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ yum update -y
|
|||||||
yum install -y epel-release
|
yum install -y epel-release
|
||||||
|
|
||||||
yum install -y postgresql-server postgresql-contrib postgresql-devel postgis postgis-utils \
|
yum install -y postgresql-server postgresql-contrib postgresql-devel postgis postgis-utils \
|
||||||
make automake gcc gcc-c++ libtool policycoreutils-python \
|
make cmake gcc gcc-c++ libtool policycoreutils-python \
|
||||||
php-pgsql php php-pear php-pear-DB libpqxx-devel proj-epsg \
|
php-pgsql php php-pear php-pear-DB libpqxx-devel proj-epsg \
|
||||||
bzip2-devel proj-devel geos-devel libxml2-devel boost-devel \
|
bzip2-devel proj-devel geos-devel libxml2-devel boost-devel \
|
||||||
expat-devel zlib-devel
|
expat-devel zlib-devel
|
||||||
@@ -70,13 +70,14 @@ cd /home/$USERNAME
|
|||||||
# If the Nominatim source is not being shared with the host, check out source.
|
# If the Nominatim source is not being shared with the host, check out source.
|
||||||
if [ ! -d "Nominatim" ]; then
|
if [ ! -d "Nominatim" ]; then
|
||||||
yum install -y git
|
yum install -y git
|
||||||
sudo -u $USERNAME git clone --recursive https://github.com/twain47/Nominatim.git
|
sudo -H -u $USERNAME git clone --recursive https://github.com/twain47/Nominatim.git
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Configure and compile the source.
|
# Configure and compile the source.
|
||||||
cd Nominatim
|
cd Nominatim
|
||||||
sudo -u $USERNAME ./autogen.sh
|
sudu -u $USERNAME mkdir build-vagrant
|
||||||
sudo -u $USERNAME ./configure
|
cd build-vagrant
|
||||||
|
sudo -u $USERNAME cmake ..
|
||||||
sudo -u $USERNAME make
|
sudo -u $USERNAME make
|
||||||
|
|
||||||
# Make sure that postgres has access to the nominatim library.
|
# Make sure that postgres has access to the nominatim library.
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ USERNAME=vagrant
|
|||||||
sudo apt-get update -qq
|
sudo apt-get update -qq
|
||||||
sudo apt-get upgrade -y
|
sudo apt-get upgrade -y
|
||||||
sudo apt-get install -y build-essential libgeos-dev libpq-dev libbz2-dev \
|
sudo apt-get install -y build-essential libgeos-dev libpq-dev libbz2-dev \
|
||||||
libtool automake libproj-dev libboost-dev libboost-system-dev \
|
libtool cmake libproj-dev libboost-dev libboost-system-dev \
|
||||||
libboost-filesystem-dev libboost-thread-dev libexpat-dev
|
libboost-filesystem-dev libboost-thread-dev libexpat-dev
|
||||||
sudo apt-get autoremove -y
|
sudo apt-get autoremove -y
|
||||||
|
|
||||||
@@ -89,13 +89,13 @@ cd /home/$USERNAME
|
|||||||
# If the Nominatim source is not being shared with the host, check out source.
|
# If the Nominatim source is not being shared with the host, check out source.
|
||||||
if [ ! -d "Nominatim" ]; then
|
if [ ! -d "Nominatim" ]; then
|
||||||
sudo apt-get install -y git
|
sudo apt-get install -y git
|
||||||
sudo -u $USERNAME git clone --recursive https://github.com/twain47/Nominatim.git
|
sudo -H -u $USERNAME git clone --recursive https://github.com/twain47/Nominatim.git
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd Nominatim
|
cd Nominatim
|
||||||
|
sudo -u $USERNAME mkdir build-vagrant
|
||||||
sudo -u $USERNAME ./autogen.sh
|
cd build-vagrant
|
||||||
sudo -u $USERNAME ./configure
|
sudo -u $USERNAME cmake ..
|
||||||
sudo -u $USERNAME make
|
sudo -u $USERNAME make
|
||||||
chmod +x ./
|
chmod +x ./
|
||||||
chmod +x ./module
|
chmod +x ./module
|
||||||
|
|||||||
Reference in New Issue
Block a user