Murmele / Gittyup

Understand your Git history!
https://murmele.github.io/Gittyup
MIT License
1.51k stars 112 forks source link

Building fails because of scintilla #196

Closed emansije closed 2 years ago

emansije commented 2 years ago

Building the latest release (1.1.1) failed on Kubuntu 22.04. I followed the steps from the Readme file, after cloning a fresh copy of the repo:

git submodule init
git submodule update
cd dep/openssl/openssl
./config -fPIC
make
cd ../../..
mkdir -p build/release
cd build/release/
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../..
ninja

The process stopped, showing the following message:

[258/544] Building CXX object src/conf/CMakeFiles/conf.dir/Settings.cpp.o
/home/user/Gittyup/src/conf/Settings.cpp: In function ‘QVariant {anonymous}::lookup(const QVariantMap&, const QString&)’:
/home/user/Gittyup/src/conf/Settings.cpp:32:46: warning: ‘QString::SkipEmptyParts’ is deprecated [-Wdeprecated-declarations]
   32 |   QStringList list = key.split("/", QString::SkipEmptyParts);
      |                                              ^~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/QDir:1,
                 from /home/user/Gittyup/src/conf/Settings.h:13,
                 from /home/user/Gittyup/src/conf/Settings.cpp:10:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:605:9: note: declared here
  605 |         SkipEmptyParts Q_DECL_ENUMERATOR_DEPRECATED
      |         ^~~~~~~~~~~~~~
/home/user/Gittyup/src/conf/Settings.cpp:32:46: warning: ‘QString::SkipEmptyParts’ is deprecated [-Wdeprecated-declarations]
   32 |   QStringList list = key.split("/", QString::SkipEmptyParts);
      |                                              ^~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/QDir:1,
                 from /home/user/Gittyup/src/conf/Settings.h:13,
                 from /home/user/Gittyup/src/conf/Settings.cpp:10:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:605:9: note: declared here
  605 |         SkipEmptyParts Q_DECL_ENUMERATOR_DEPRECATED
      |         ^~~~~~~~~~~~~~
/home/user/Gittyup/src/conf/Settings.cpp:32:31: warning: ‘QStringList QString::split(const QString&, QString::SplitBehavior, Qt::CaseSensitivity) const’ is deprecated: Use Qt::SplitBehavior variant instead [-Wdeprecated-declarations]
   32 |   QStringList list = key.split("/", QString::SkipEmptyParts);
      |                      ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/qdir.h:43,
                 from /usr/include/x86_64-linux-gnu/qt5/QtCore/QDir:1,
                 from /home/user/Gittyup/src/conf/Settings.h:13,
                 from /home/user/Gittyup/src/conf/Settings.cpp:10:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:609:17: note: declared here
  609 |     QStringList split(const QString &sep, SplitBehavior behavior,
      |                 ^~~~~
/home/user/Gittyup/src/conf/Settings.cpp: In member function ‘QString Settings::promptDescription(Settings::PromptKind) const’:
/home/user/Gittyup/src/conf/Settings.cpp:213:1: warning: control reaches end of non-void function [-Wreturn-type]
  213 | }
      | ^
[259/544] Building CXX object dep/scintilla/CMakeFiles/scintilla.dir/lexilla/src/Document.cxx.o
ninja: build stopped: subcommand failed.
Murmele commented 2 years ago

@emansije Can you provide the full output. I cannot see any problems here. Which Qt Version are you using?

emansije commented 2 years ago

The Qt version I'm using is 5.15.3+dfsg-2 amd64

This is the output:

user@host:~/Gittyup$ git submodule init
user@host:~/Gittyup$ git submodule update
Submodule path 'dep/cmark/cmark': checked out 'a8da5a2f252b96eca60ae8bada1a9ba059a38401'
Submodule path 'dep/git/git': checked out '4c53a8c20f8984adb226293a3ffd7b88c3f4ac1a'
Submodule path 'dep/hunspell/hunspell': checked out '8a2fdfe5a6bb1cbafc04b0c8486abcefd17ad903'
Submodule path 'dep/libgit2/libgit2': checked out '7861f401ea25e1ceaf7323c1585de4d633e0ec39'
Submodule path 'dep/libssh2/libssh2': checked out '635caa90787220ac3773c1d5ba11f1236c22eae8'
Submodule path 'dep/openssl/openssl': checked out '1bf649b5998ac98511203f54ce954eccfaf75467'
Submodule path 'dep/scintilla/lexilla': checked out '82b21cd1348366a7dc25d57c6de532968da40541'
Submodule path 'dep/scintilla/scintillua': checked out '33d0e3433a2046c1077f6b33fc801caf6bfac7a9'
Submodule path 'test/dep/zip': checked out '2652bd2bce8573990894cd068e6d62ffb8057676'
user@host:~/Gittyup$ cd dep/openssl/openssl
user@host:~/Gittyup/dep/openssl/openssl$ ./config -fPIC
Configuring OpenSSL version 3.0.2 for target linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Running configdata.pm
Creating Makefile.in
Creating Makefile

**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL.md file first)      ***
***                                                                ***
**********************************************************************
user@host:~/Gittyup/dep/openssl/openssl$ make

(see attached file openssl.make.output.txt )

[openssl.make.output.txt](https://github.com/Murmele/Gittyup/files/8914791/openssl.make.output.txt)
[gittyup.ninja.output.txt](https://github.com/Murmele/Gittyup/files/8914793/gittyup.ninja.output.txt)

user@host:~/Gittyup/dep/openssl/openssl$ cd ../../..
user@host:~/Gittyup$ mkdir -p build/release
user@host:~/Gittyup$ cd build/release/
user@host:~/Gittyup/build/release$ cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ../..
-- The C compiler identification is GNU 11.2.0
-- The CXX compiler identification is GNU 11.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Git: /usr/bin/git (found version "2.34.1") 
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.2") 
-- Checking for module 'libssh2'
--   No package 'libssh2' found
CMake Deprecation Warning at dep/libssh2/libssh2/CMakeLists.txt:36 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

CMake Warning (dev) at dep/libssh2/libssh2/CMakeLists.txt:52 (option):
  Policy CMP0077 is not set: option() honors normal variables.  Run "cmake
  --help-policy CMP0077" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  For compatibility with older versions of CMake, option is clearing the
  normal variable 'BUILD_SHARED_LIBS'.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found OpenSSL: /home/user/Gittyup/dep/openssl/openssl/libcrypto.so (found version "3.0.2")  
-- Looking for EVP_aes_128_ctr
-- Looking for EVP_aes_128_ctr - found
-- Looking for include file unistd.h
-- Looking for include file unistd.h - found
-- Looking for include file inttypes.h
-- Looking for include file inttypes.h - found
-- Looking for include file stdlib.h
-- Looking for include file stdlib.h - found
-- Looking for include file sys/select.h
-- Looking for include file sys/select.h - found
-- Looking for include file sys/uio.h
-- Looking for include file sys/uio.h - found
-- Looking for include file sys/socket.h
-- Looking for include file sys/socket.h - found
-- Looking for include file sys/ioctl.h
-- Looking for include file sys/ioctl.h - found
-- Looking for include file sys/time.h
-- Looking for include file sys/time.h - found
-- Looking for include file sys/un.h
-- Looking for include file sys/un.h - found
-- Looking for include file windows.h
-- Looking for include file windows.h - not found
-- Looking for include file ws2tcpip.h
-- Looking for include file ws2tcpip.h - not found
-- Looking for include file winsock2.h
-- Looking for include file winsock2.h - not found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of long long
-- Check size of long long - done
-- Looking for gettimeofday
-- Looking for gettimeofday - found
-- Looking for strtoll
-- Looking for strtoll - found
-- Looking for snprintf
-- Looking for snprintf - found
-- Looking for memset_s
-- Looking for memset_s - not found
-- Looking for poll
-- Looking for poll - found
-- Looking for socket
-- Looking for socket - found
-- Looking for select
-- Looking for select - found
-- Looking for inet_addr
-- Looking for inet_addr - found
-- Performing Test HAVE_O_NONBLOCK
-- Performing Test HAVE_O_NONBLOCK - Success
-- The following features have been enabled:

 * diffie-hellman-group-exchange-sha1, "new" diffie-hellman-group-exchange-sha1 method

-- The following OPTIONAL packages have been found:

 * Git
 * OpenSSL

-- The following REQUIRED packages have been found:

 * Qt5Concurrent
 * Qt5Core
 * Qt5Gui
 * Qt5Network
 * Qt5PrintSupport
 * Qt5Widgets
 * Qt5Test
 * Qt5DBus
 * Qt5LinguistTools
 * Qt5 (required version >= 5.12)

-- The following features have been disabled:

 * Shared library, creating libssh2 as a shared library (.so/.dll)
 * Compression, using zlib for compression
 * "none" cipher
 * "none" MAC
 * Logging, Logging of execution with debug trace

-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE  
-- Performing Test HAVE_STRUCT_STAT_ST_MTIM
-- Performing Test HAVE_STRUCT_STAT_ST_MTIM - Success
-- Performing Test HAVE_STRUCT_STAT_ST_MTIMESPEC
-- Performing Test HAVE_STRUCT_STAT_ST_MTIMESPEC - Failed
-- Performing Test HAVE_STRUCT_STAT_MTIME_NSEC
-- Performing Test HAVE_STRUCT_STAT_MTIME_NSEC - Failed
-- Performing Test HAVE_STRUCT_STAT_NSEC
-- Performing Test HAVE_STRUCT_STAT_NSEC - Success
-- Performing Test IS_WALL_SUPPORTED
-- Performing Test IS_WALL_SUPPORTED - Success
-- Performing Test IS_WEXTRA_SUPPORTED
-- Performing Test IS_WEXTRA_SUPPORTED - Success
-- Performing Test IS_WDOCUMENTATION_SUPPORTED
-- Performing Test IS_WDOCUMENTATION_SUPPORTED - Failed
-- Performing Test IS_WNO_DOCUMENTATION_DEPRECATED_SYNC_SUPPORTED
-- Performing Test IS_WNO_DOCUMENTATION_DEPRECATED_SYNC_SUPPORTED - Success
-- Performing Test IS_WNO_MISSING_FIELD_INITIALIZERS_SUPPORTED
-- Performing Test IS_WNO_MISSING_FIELD_INITIALIZERS_SUPPORTED - Success
-- Performing Test IS_WSTRICT_ALIASING_SUPPORTED
-- Performing Test IS_WSTRICT_ALIASING_SUPPORTED - Success
-- Performing Test IS_WSTRICT_PROTOTYPES_SUPPORTED
-- Performing Test IS_WSTRICT_PROTOTYPES_SUPPORTED - Success
-- Performing Test IS_WDECLARATION_AFTER_STATEMENT_SUPPORTED
-- Performing Test IS_WDECLARATION_AFTER_STATEMENT_SUPPORTED - Success
-- Performing Test IS_WSHIFT_COUNT_OVERFLOW_SUPPORTED
-- Performing Test IS_WSHIFT_COUNT_OVERFLOW_SUPPORTED - Success
-- Performing Test IS_WUNUSED_CONST_VARIABLE_SUPPORTED
-- Performing Test IS_WUNUSED_CONST_VARIABLE_SUPPORTED - Success
-- Performing Test IS_WUNUSED_FUNCTION_SUPPORTED
-- Performing Test IS_WUNUSED_FUNCTION_SUPPORTED - Success
-- Performing Test IS_WINT_CONVERSION_SUPPORTED
-- Performing Test IS_WINT_CONVERSION_SUPPORTED - Success
-- Performing Test IS_WFORMAT_SUPPORTED
-- Performing Test IS_WFORMAT_SUPPORTED - Success
-- Performing Test IS_WFORMAT_SECURITY_SUPPORTED
-- Performing Test IS_WFORMAT_SECURITY_SUPPORTED - Success
-- Performing Test IS_WMISSING_DECLARATIONS_SUPPORTED
-- Performing Test IS_WMISSING_DECLARATIONS_SUPPORTED - Success
-- Looking for futimens
-- Looking for futimens - found
-- Checking prototype qsort_r for HAVE_QSORT_R_BSD
-- Checking prototype qsort_r for HAVE_QSORT_R_BSD - False
-- Checking prototype qsort_r for HAVE_QSORT_R_GNU
-- Checking prototype qsort_r for HAVE_QSORT_R_GNU - True
-- Looking for qsort_s
-- Looking for qsort_s - not found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Found PCRE: /usr/lib/x86_64-linux-gnu/libpcre.so  
-- Looking for regcomp_l
-- Looking for regcomp_l - not found
-- http-parser version 2 was not found or disabled; using bundled 3rd-party sources.
-- Performing Test IS_WIMPLICIT_FALLTHROUGH_1_SUPPORTED
-- Performing Test IS_WIMPLICIT_FALLTHROUGH_1_SUPPORTED - Success
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.11") 
-- Looking for libssh2_userauth_publickey_frommemory in libssh2
-- Looking for libssh2_userauth_publickey_frommemory in libssh2 - not found
-- Performing Test IS_WNO_IMPLICIT_FALLTHROUGH_SUPPORTED
-- Performing Test IS_WNO_IMPLICIT_FALLTHROUGH_SUPPORTED - Success
-- Checking for module 'heimdal-gssapi'
--   No package 'heimdal-gssapi' found
-- Could NOT find GSSAPI (missing: GSSAPI_LIBRARIES GSSAPI_INCLUDE_DIR) 
-- Enabled features:
 * diffie-hellman-group-exchange-sha1, "new" diffie-hellman-group-exchange-sha1 method
 * nanoseconds, whether to use sub-second file mtimes and ctimes
 * tracing, tracing support
 * threadsafe, threadsafe support
 * HTTPS, using OpenSSL
 * SHA, using CollisionDetection
 * regex, using system PCRE
 * http-parser, http-parser support (bundled)
 * zlib, using system zlib
 * SSH, SSH transport support
 * ntlmclient, NTLM authentication support for Unix

-- Disabled features:
 * Shared library, creating libssh2 as a shared library (.so/.dll)
 * Compression, using zlib for compression
 * "none" cipher
 * "none" MAC
 * Logging, Logging of execution with debug trace
 * debugpool, debug pool allocator
 * SPNEGO, SPNEGO authentication support
 * iconv, iconv encoding conversion support

-- Checking for module 'libcmark'
--   Found libcmark, version 0.30.2
-- Found Lua: /usr/lib/x86_64-linux-gnu/liblua5.2.so;/usr/lib/x86_64-linux-gnu/libm.so (found version "5.2.4") 
-- Checking for module 'libsecret-1'
--   Found libsecret-1, version 0.20.5
-- Checking for module 'gnome-keyring-1'
--   No package 'gnome-keyring-1' found
-- Checking for module 'hunspell'
--   Found hunspell, version 1.7.0
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/Gittyup/build/release
user@host:~/Gittyup/build/release$ ninja

(see attached file gittyup.ninja.output.txt )

Murmele commented 2 years ago

@emansije can you provide the same output like you have it in the first post but the full one. in ninja.output it seems to be not available

emansije commented 2 years ago

Oops! Sorry! I sent the build.ninja file by mistake. Here goes the ninja output: gittyup.ninja.output.txt

Murmele commented 2 years ago

seems to be a lua error. Do you have lua installed?

emansije commented 2 years ago

I do have some lua libraries installed:

fcitx-module-lua 1:4.2.9.8-5
liblua5.2-0 5.2.4-2
liblua5.2-dev 5.2.4-2
liblua5.3-0 5.3.6-1build1
liblua5.4-0 5.4.4-1
libluabind-dev 0.9.1+git20150823+dfsg-3
libluabind0.9.1d1 0.9.1+git20150823+dfsg-3
lua-lgi 0.9.2-3
lua-lpeg 1.0.2-1

Maybe there's some version conflict.

emansije commented 2 years ago

It was a problem with lua, indeed. I removed the following packages:

liblua5.2-dev
libluabind-dev
libluabind0.9.1d1

It now builds past that point but stops near the end with this error:

/bin/sh: 1: cmark_exe: not found
[509/579] Linking CXX static library test/libtestlib.a

I guess that'll be a subject for another issue.

Murmele commented 2 years ago

Hi @emansije,

rename cmark_exe in the CMakeLists.txt to cmark then it works. This came with the update of cmark. I think the system cmark is still called cmark, but the one bundled with Gittyup is called cmark_exe

emansije commented 2 years ago

It worked like a charm. Thank you!

Was the renaming o cmark done on purpose, perhaps to avoid conflicting with any other cmark that might be installed in the system?

Murmele commented 2 years ago

Hmm no for some reason it had to be renamed with the new cmark dependency. Don't understand why it does not work without renaming