Source: curl
Version: 8.13.0-1
Tags: patch upstream
Severity: important
Justification: architecture cross bootstrap regression
User: helm...@debian.org
Usertags: rebootstrap
User: debian-cr...@lists.debian.org
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)

Reply via email to