Source: curl
Version: 8.13.0-1
Tags: patch upstream
Severity: important
Justification: architecture cross bootstrap regression
User: [email protected]
Usertags: rebootstrap
User: [email protected]
Usertags: ftcbfs
Hi,
curl intentionally broke cross compilation in its last upstream release.
It stopped installing fish/zsh completion files, because that's
impossible for cross compilation. Turns out, that's factually wrong and
skipping the files makes the build fail. I'm attaching a revert for your
convenience. Please include it at least in Debian even if it ends up not
being upstreamable.
Helmut
--- curl-8.13.0.orig/scripts/CMakeLists.txt
+++ curl-8.13.0/scripts/CMakeLists.txt
@@ -51,33 +51,29 @@
endif()
if(NOT CURL_DISABLE_INSTALL)
- if(NOT CMAKE_CROSSCOMPILING)
- if(NOT CURL_COMPLETION_FISH_DIR)
- find_package(PkgConfig QUIET)
- pkg_get_variable(CURL_COMPLETION_FISH_DIR "fish" "completionsdir")
- if(NOT _pkg_fish_completionsdir)
- include(GNUInstallDirs)
- if(CMAKE_INSTALL_DATAROOTDIR)
- set(CURL_COMPLETION_FISH_DIR "${CMAKE_INSTALL_DATAROOTDIR}/fish/vendor_completions.d")
- endif()
- endif()
- endif()
- if(NOT CURL_COMPLETION_ZSH_DIR)
+ if(NOT CURL_COMPLETION_FISH_DIR)
+ find_package(PkgConfig QUIET)
+ pkg_get_variable(CURL_COMPLETION_FISH_DIR "fish" "completionsdir")
+ if(NOT _pkg_fish_completionsdir)
include(GNUInstallDirs)
if(CMAKE_INSTALL_DATAROOTDIR)
- set(CURL_COMPLETION_ZSH_DIR "${CMAKE_INSTALL_DATAROOTDIR}/zsh/site-functions")
+ set(CURL_COMPLETION_FISH_DIR "${CMAKE_INSTALL_DATAROOTDIR}/fish/vendor_completions.d")
endif()
endif()
- if(CURL_COMPLETION_FISH_DIR)
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_completion_fish}"
- DESTINATION "${CURL_COMPLETION_FISH_DIR}")
- endif()
- if(CURL_COMPLETION_ZSH_DIR)
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_completion_zsh}"
- DESTINATION "${CURL_COMPLETION_ZSH_DIR}")
+ endif()
+ if(NOT CURL_COMPLETION_ZSH_DIR)
+ include(GNUInstallDirs)
+ if(CMAKE_INSTALL_DATAROOTDIR)
+ set(CURL_COMPLETION_ZSH_DIR "${CMAKE_INSTALL_DATAROOTDIR}/zsh/site-functions")
endif()
- else()
- message(STATUS "We cannot install completion scripts when cross-compiling")
+ endif()
+ if(CURL_COMPLETION_FISH_DIR)
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_completion_fish}"
+ DESTINATION "${CURL_COMPLETION_FISH_DIR}")
+ endif()
+ if(CURL_COMPLETION_ZSH_DIR)
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${_completion_zsh}"
+ DESTINATION "${CURL_COMPLETION_ZSH_DIR}")
endif()
endif()
else()
--- curl-8.13.0.orig/scripts/Makefile.am
+++ curl-8.13.0/scripts/Makefile.am
@@ -55,9 +55,6 @@ $(FISH_COMPLETION_FUNCTION_FILENAME): co
endif
install-data-local:
-if CROSSCOMPILING
- @echo 'NOTICE: we cannot install completion scripts when cross-compiling'
-else # if not cross-compiling:
if USE_ZSH_COMPLETION
if test -n "$(PERL)"; then \
$(MKDIR_P) $(DESTDIR)$(ZSH_FUNCTIONS_DIR); \
@@ -70,7 +67,6 @@ if USE_FISH_COMPLETION
$(INSTALL_DATA) $(FISH_COMPLETION_FUNCTION_FILENAME) $(DESTDIR)$(FISH_FUNCTIONS_DIR)/$(FISH_COMPLETION_FUNCTION_FILENAME); \
fi
endif
-endif
distclean:
rm -f $(CLEANFILES)