pgRouting / pgrouting

Repository contains pgRouting library. Development branch is "develop", stable branch is "master"
https://pgrouting.org
GNU General Public License v2.0
1.16k stars 366 forks source link

pgRouting does not build in focal #2399

Closed cvvergara closed 1 year ago

cvvergara commented 2 years ago

From here: https://pgdgbuild.dus.dg-i.net/view/Binaries/job/pgrouting-binaries/lastFailedBuild/architecture=amd64,distribution=focal/console

gettext_compact

    New in version 1.1.
    If true, a document’s text domain is its docname if it is a top-level project file and its very base directory otherwise.
    If set to string, all document’s text domain is this string, making all documents use single text domain.
    By default, the document markup/code.rst ends up in the markup text domain. With this option set to False, it is markup/code.

    Changed in version 3.3: The string value is now accepted.

Focal is using:

08:11:06 Running Sphinx v1.8.5
08:11:06 loading translations [en]... done
08:11:06 making output directory...
08:11:06 WARNING: The config value `gettext_compact' has type `str', defaults to `bool'.

The:

gettext_compact = "pgrouting_doc_strings"

https://github.com/pgRouting/pgrouting/blob/main/doc/conf.py.in needs to be removed

cvvergara commented 1 year ago

Somehow the fix did not work: https://pgdgbuild.dus.dg-i.net/view/Binaries/job/pgrouting-binaries/lastFailedBuild/

I do not know what to do, @robe2 Suggestions?

robe2 commented 1 year ago

Okay I'll see if I can replicate on my focal.

robe2 commented 1 year ago

I can't replicate this issue on main branch. I'll try next on tagged 3.4.1 which is what pgdg is building

My steps:

mkdir ~/projects
cd ~/projects
git clone -b main https://github.com/pgRouting/pgrouting.git
sudo apt install cmake g++ libboost-dev postgresql-12 postgresql-server-dev-12 
sudo apt install python3-sphinx doxygen graphviz #for doc building
cd pgrouting
mkdir build 
cd build 
cmake -DWITH_DOC=ON ..

As expected I get this notice on doc building:

-- CMAKE_BUILD_TYPE Release -- DOXYGEN_MINIMUM_VERSION=1.7 -- SPHINX_MINIMUM_VERSION=4.0 -- POSTGRESQL_MINIMUM_VERSION=9.2.0 -- BOOST_MINIMUM_VERSION=1.56.0 -- POSTGIS_MINIMUM_VERSION=2.0.0 -- POSTGRESQL_PG_CONFIG is /usr/bin/pg_config -- POSTGRESQL_EXECUTABLE is /usr/lib/postgresql/12/bin/postgres -- POSTGRESQL_VERSION_STRING in FindPostgreSQL.cmake is PostgreSQL 12.12 (Ubuntu 12.12-0ubuntu0.20.04.1) -- POSTGRESQL_INCLUDE_DIR: /usr/include/postgresql/12/server -- POSTGRESQL_LIBRARIES: /usr/lib/x86_64-linux-gnu -- POSTGRESQL_VERSION_STRING=PostgreSQL 12.12 (Ubuntu 12.12-0ubuntu0.20.04.1) -- POSTGRESQL_VERSION=12.12 -- PGSQL_VERSION=1212 -- LIBRARY_INSTALL_PATH /usr/lib/postgresql/12/lib -- Developers documentation. -- Found Doxygen: /usr/bin/doxygen (found suitable version "1.8.17", minimum required is "1.7") found components: doxygen dot -- PROJECT_DOC_TARGETS = html -- PROJECT_BUILD_LANGUAGES = en -- SPHINXINTL_LANGUAGE = en -- Checking for package 'Sphinx' -- SPHINX_VERSION sphinx-build 1.8.5 -- SPHINX_VERSION 1.8.5 -- Could NOT find Sphinx (missing: SPHINX_VERSION_OK) (Required is at least version "4.0") CMake Warning at doc/CMakeLists.txt:146 (message): Sphinx not found.

  building without documentation

-- Configuring done -- Generating done -- Build files have been written to: /home/robe/projects/pgrouting/build

as expected I get a notice that my sphinx is too low and build will proceed without documentation.

robe2 commented 1 year ago

Just tried with tagged v3.4.1

cd ~/projects/pgrouting
rm -rf build
git clean -fdx
git checkout v3.4.1
mkdir build
cd build
cd build 
cmake -DWITH_DOC=ON ..

I get the same notice:

-- Setting build type to 'Release' as none was specified. -- CMAKE_BUILD_TYPE Release -- The C compiler identification is GNU 9.4.0 -- The CXX compiler identification is GNU 9.4.0 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- Found Git: /usr/bin/git (found version "2.25.1") -- DOXYGEN_MINIMUM_VERSION=1.7 -- SPHINX_MINIMUM_VERSION=4.0 -- POSTGRESQL_MINIMUM_VERSION=9.2.0 -- BOOST_MINIMUM_VERSION=1.56.0 -- POSTGIS_MINIMUM_VERSION=2.0.0 -- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.56.0") -- Performing Test COMPILER_SUPPORTS_CXX11 -- Performing Test COMPILER_SUPPORTS_CXX11 - Success -- Found Perl: /usr/bin/perl (found version "5.30.0") -- POSTGRESQL_PG_CONFIG is /usr/bin/pg_config -- POSTGRESQL_EXECUTABLE is /usr/lib/postgresql/12/bin/postgres -- POSTGRESQL_VERSION_STRING in FindPostgreSQL.cmake is PostgreSQL 12.12 (Ubuntu 12.12-0ubuntu0.20.04.1) -- POSTGRESQL_INCLUDE_DIR: /usr/include/postgresql/12/server -- POSTGRESQL_LIBRARIES: /usr/lib/x86_64-linux-gnu -- POSTGRESQL_VERSION_STRING=PostgreSQL 12.12 (Ubuntu 12.12-0ubuntu0.20.04.1) -- POSTGRESQL_VERSION=12.12 -- PGSQL_VERSION=1212 -- LIBRARY_INSTALL_PATH /usr/lib/postgresql/12/lib -- Performing Test C_COMPILER_SUPPORTS_FPIC -- Performing Test C_COMPILER_SUPPORTS_FPIC - Success -- Performing Test CXX_COMPILER_SUPPORTS_FPIC -- Performing Test CXX_COMPILER_SUPPORTS_FPIC - Success -- Performing Test C_COMPILER_SUPPORTS_ROUNDING_MATH -- Performing Test C_COMPILER_SUPPORTS_ROUNDING_MATH - Success -- Performing Test CXX_COMPILER_SUPPORTS_ROUNDING_MATH -- Performing Test CXX_COMPILER_SUPPORTS_ROUNDING_MATH - Success -- Developers documentation. -- Found Doxygen: /usr/bin/doxygen (found suitable version "1.8.17", minimum required is "1.7") found components: doxygen dot -- PROJECT_DOC_TARGETS = html -- PROJECT_BUILD_LANGUAGES = en -- SPHINXINTL_LANGUAGE = en -- Checking for package 'Sphinx' -- Found PythonInterp: /usr/bin/python3.8 (found version "3.8.10") -- SPHINX_VERSION sphinx-build 1.8.5 -- SPHINX_VERSION 1.8.5 -- Could NOT find Sphinx (missing: SPHINX_VERSION_OK) (Required is at least version "4.0") CMake Warning at doc/CMakeLists.txt:146 (message): Sphinx not found.

  building without documentation

-- Configuring done -- Generating done -- Build files have been written to: /home/robe/projects/pgrouting/build

and continuing the build goes smoothly.

I'll try next with the tarball just to rule that out. But I'm suspecting pgdg folks maybe applied some patches to their build

cause their cmake for 3.4.1 is reading the below which makes no sense

08:00:44 -- Checking for package 'Sphinx' 08:00:44 -- Found PythonInterp: /usr/bin/python3.8 (found version "3.8.10") 08:00:45 -- SPHINX_VERSION sphinx-build 1.8.5 08:00:45 -- SPHINX_VERSION 1.8.5 08:00:45 -- Found Sphinx: /usr/bin/sphinx-build (Required is at least version "1.8")

robe2 commented 1 year ago

I tried with the zip package, and I still can't replicate. I think we can close this out and have PGDG folks check what they are doing differently or how their package is different.

sudo apt install unzip
wget https://github.com/pgRouting/pgrouting/releases/download/v3.4.1/pgrouting-3.4.1.zip
unzip pgrouting-3.4.1.zip
cd pgrouting-3.4.1
mkdir build
cd build
cmake  -DWITH_DOC=ON ..
cvvergara commented 1 year ago

I think is when building the docs

robe2 commented 1 year ago

They shouldn't be able to build the docs against main cause it requires Sphinx >= 4.0