From aa9cae8d3ca20e8da565a342b73d1bdf3c3c20c9 Mon Sep 17 00:00:00 2001 From: Jan Palus Date: Fri, 7 Apr 2023 17:33:57 +0200 Subject: [PATCH] up to 0.9.0 keep on using "workaround" for linking directly with lua module. upstream dropped it in: https://github.com/neovim/neovim/commit/da0c66bcddbe4e6ebc72357c9f6c5de75e176744 without explaining how "correctly packaged libluv" looks like exactly. libluv built with lua54 is incompatible with neovim built against lua51/luajit so I guess upstream idea is that libluv should be forced "their way". if libluv had a chance of easily installing parallel libraries for different lua versions (different sonames, different pkgconfig files) and neovim could select between them it would be feasible but it's not available so just revert the commit. --- build-type.patch | 13 ------------ luv.patch | 52 ++++++++++++++++++++++++++++++++++++++++++++++++ neovim.spec | 9 ++++++--- 3 files changed, 58 insertions(+), 16 deletions(-) create mode 100644 luv.patch diff --git a/build-type.patch b/build-type.patch index 6deab87..cc9e554 100644 --- a/build-type.patch +++ b/build-type.patch @@ -10,16 +10,3 @@ diff --color -ur neovim-0.8.0.orig/cmake/Util.cmake neovim-0.8.0/cmake/Util.cmak get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) if(isMultiConfig) -diff --color -ur neovim-0.8.0.orig/CMakeLists.txt neovim-0.8.0/CMakeLists.txt ---- neovim-0.8.0.orig/CMakeLists.txt 2022-09-30 17:15:13.000000000 +0200 -+++ neovim-0.8.0/CMakeLists.txt 2022-10-01 09:56:00.395911537 +0200 -@@ -150,7 +150,8 @@ - # Minimize logging for release-type builds. - if(CMAKE_BUILD_TYPE STREQUAL "Release" - OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo" -- OR CMAKE_BUILD_TYPE STREQUAL "MinSizeRel") -+ OR CMAKE_BUILD_TYPE STREQUAL "MinSizeRel" -+ OR CMAKE_BUILD_TYPE STREQUAL "PLD") - message(STATUS "MIN_LOG_LEVEL not specified, default is 3 (ERROR) for release builds") - set(MIN_LOG_LEVEL 3) - else() diff --git a/luv.patch b/luv.patch new file mode 100644 index 0000000..f076c7e --- /dev/null +++ b/luv.patch @@ -0,0 +1,52 @@ +From da0c66bcddbe4e6ebc72357c9f6c5de75e176744 Mon Sep 17 00:00:00 2001 +From: dundargoc +Date: Sun, 5 Mar 2023 17:06:13 +0100 +Subject: [PATCH] build: remove workaround for incorrectly packaged libluv + +This removes a workaround for incorrectly packaged libluv in +90e44ecf1144cb32195da00e24d23afb111ea680 as it should not be needed +anymore. +--- + cmake/FindLibluv.cmake | 11 +---------- + src/nvim/CMakeLists.txt | 8 ++------ + 2 files changed, 3 insertions(+), 16 deletions(-) + +diff --git a/cmake/FindLibluv.cmake b/cmake/FindLibluv.cmake +index 9a74d5d0e1ba0..3dfc53602413c 100644 +--- a/cmake/FindLibluv.cmake ++++ b/cmake/FindLibluv.cmake +@@ -1,14 +1,5 @@ + find_path(LIBLUV_INCLUDE_DIR luv/luv.h) +- +-# Explicitly look for luv.so. #10407 +-list(APPEND LIBLUV_NAMES luv_a luv libluv_a luv${CMAKE_SHARED_LIBRARY_SUFFIX}) +- +-find_library(LIBLUV_LIBRARY NAMES ${LIBLUV_NAMES}) +- +-set(LIBLUV_LIBRARIES ${LIBLUV_LIBRARY}) +-set(LIBLUV_INCLUDE_DIRS ${LIBLUV_INCLUDE_DIR}) +- ++find_library(LIBLUV_LIBRARY NAMES luv_a luv libluv_a luv.so) + find_package_handle_standard_args(Libluv DEFAULT_MSG + LIBLUV_LIBRARY LIBLUV_INCLUDE_DIR) +- + mark_as_advanced(LIBLUV_INCLUDE_DIR LIBLUV_LIBRARY) +diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt +index 61530f5a7bf95..51e0727cd51c4 100755 +--- a/src/nvim/CMakeLists.txt ++++ b/src/nvim/CMakeLists.txt +@@ -14,12 +14,8 @@ else() + endif() + + find_package(Libluv 1.43.0 REQUIRED) +-target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${LIBLUV_INCLUDE_DIRS}) +-# Use "luv" as imported library, to work around CMake using "-lluv" for +-# "luv.so". #10407 +-add_library(luv UNKNOWN IMPORTED) +-set_target_properties(luv PROPERTIES IMPORTED_LOCATION ${LIBLUV_LIBRARIES}) +-target_link_libraries(main_lib INTERFACE luv) ++target_include_directories(main_lib SYSTEM BEFORE INTERFACE ${LIBLUV_INCLUDE_DIR}) ++target_link_libraries(main_lib INTERFACE ${LIBLUV_LIBRARY}) + + find_package(Iconv REQUIRED) + find_package(Libtermkey 0.22 REQUIRED) diff --git a/neovim.spec b/neovim.spec index e189f09..29ae8c5 100644 --- a/neovim.spec +++ b/neovim.spec @@ -18,17 +18,18 @@ Summary: Vim-fork focused on extensibility and agility Name: neovim -Version: 0.8.3 +Version: 0.9.0 Release: 1 License: Apache v2.0 Group: Applications/Editors/Vim # Source0Download: https://github.com/neovim/neovim/releases Source0: https://github.com/neovim/neovim/archive/v%{version}/%{name}-%{version}.tar.gz -# Source0-md5: 12984fbf6ca9d33cf6a79c7c3134c2ac +# Source0-md5: 86b762639f29ee92d37f8ec0f78b7074 URL: https://neovim.io/ Source2: %{name}.svg Patch0: desktop.patch Patch1: build-type.patch +Patch2: luv.patch BuildRequires: cmake >= 3.10 BuildRequires: gcc >= 6:4.4 BuildRequires: gettext-tools @@ -43,7 +44,7 @@ BuildRequires: msgpack-devel >= 1.1.0 BuildRequires: pkgconfig BuildRequires: rpm-build >= 4.6 BuildRequires: rpmbuild(macros) >= 1.605 -BuildRequires: tree-sitter-devel +BuildRequires: tree-sitter-devel >= 0.20.8 BuildRequires: unibilium-devel >= 2.0.0 %if %{with prefer_lua} BuildRequires: lua51 @@ -58,6 +59,7 @@ Requires: libtermkey >= 0.22 Requires: libuv >= 1.28.0 Requires: libvterm >= 0.3 Requires: %{?with_prefer_lua:lua51}%{!?with_prefer_lua:luajit}-luv +Requires: tree-sitter >= 0.20.8 Suggests: %{name}-desktop = %{version}-%{release} Suggests: python-neovim Suggests: python3-neovim @@ -96,6 +98,7 @@ Desktop files for Neovim. %setup -q %patch0 -p1 %patch1 -p1 +%patch2 -p1 -R %build %cmake -B build \ -- 2.44.0