diff options
Diffstat (limited to 'nixpkgs/pkgs/development/tools/build-managers')
25 files changed, 145 insertions, 1321 deletions
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix index 8c46b2456ee3..f22e7c3c22af 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix +++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "bazel-buildtools"; - version = "6.3.3"; + version = "6.4.0"; src = fetchFromGitHub { owner = "bazelbuild"; repo = "buildtools"; rev = "v${version}"; - hash = "sha256-eGX1W3Nc26aw31dWm1hvcUzFh1efL4Vd86dK6Hs2BJc="; + hash = "sha256-k4qbveJ1BORnwjOIZcJLWIGVMRjCAqVhISggQ/VTzA4="; }; vendorHash = "sha256-DigTREfI6I48wxRpGp/bfH1NbUZ4E1B5UTQXpI0LY1A="; diff --git a/nixpkgs/pkgs/development/tools/build-managers/boot/builder.sh b/nixpkgs/pkgs/development/tools/build-managers/boot/builder.sh index e007cbac9582..4506e3f0f861 100644 --- a/nixpkgs/pkgs/development/tools/build-managers/boot/builder.sh +++ b/nixpkgs/pkgs/development/tools/build-managers/boot/builder.sh @@ -1,4 +1,4 @@ -if [ -e .attrs.sh ]; then source .attrs.sh; fi +if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi source $stdenv/setup boot_bin=$out/bin/boot diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/001-search-path.diff b/nixpkgs/pkgs/development/tools/build-managers/cmake/001-search-path.diff deleted file mode 100644 index 04ab0847a707..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/cmake/001-search-path.diff +++ /dev/null @@ -1,95 +0,0 @@ -diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake -index b9381c3d7d..5e944640b5 100644 ---- a/Modules/Platform/UnixPaths.cmake -+++ b/Modules/Platform/UnixPaths.cmake -@@ -26,9 +26,6 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH) - # please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst - # synchronized - list(APPEND CMAKE_SYSTEM_PREFIX_PATH -- # Standard -- /usr/local /usr / -- - # CMake install location - "${_CMAKE_INSTALL_DIR}" - ) -@@ -47,48 +44,49 @@ endif() - - # Non "standard" but common install prefixes - list(APPEND CMAKE_SYSTEM_PREFIX_PATH -- /usr/X11R6 -- /usr/pkg -- /opt - ) - - # List common include file locations not under the common prefixes. -+if(DEFINED ENV{NIX_CC} -+ AND IS_DIRECTORY "$ENV{NIX_CC}" -+ AND EXISTS "$ENV{NIX_CC}/nix-support/orig-libc" -+ AND EXISTS "$ENV{NIX_CC}/nix-support/orig-libc-dev") -+ file(STRINGS "$ENV{NIX_CC}/nix-support/orig-libc" _nix_cmake_libc) -+ file(STRINGS "$ENV{NIX_CC}/nix-support/orig-libc-dev" _nix_cmake_libc_dev) -+else() -+ set(_nix_cmake_libc @libc_lib@) -+ set(_nix_cmake_libc_dev @libc_dev@) -+endif() -+ - list(APPEND CMAKE_SYSTEM_INCLUDE_PATH -- # X11 -- /usr/include/X11 -+ "${_nix_cmake_libc_dev}/include" - ) - - list(APPEND CMAKE_SYSTEM_LIBRARY_PATH -- # X11 -- /usr/lib/X11 -+ "${_nix_cmake_libc}/lib" - ) - - list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES -- /lib /lib32 /lib64 /usr/lib /usr/lib32 /usr/lib64 -+ "${_nix_cmake_libc}/lib" - ) - --if(CMAKE_SYSROOT_COMPILE) -- set(_cmake_sysroot_compile "${CMAKE_SYSROOT_COMPILE}") --else() -- set(_cmake_sysroot_compile "${CMAKE_SYSROOT}") --endif() -- - # Default per-language values. These may be later replaced after - # parsing the implicit directory information from compiler output. - set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT - ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES} -- "${_cmake_sysroot_compile}/usr/include" -+ "${_nix_cmake_libc_dev}/include" - ) - set(_CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES_INIT - ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES} -- "${_cmake_sysroot_compile}/usr/include" -+ "${_nix_cmake_libc_dev}/include" - ) - set(_CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES_INIT - ${CMAKE_CUDA_IMPLICIT_INCLUDE_DIRECTORIES} -- "${_cmake_sysroot_compile}/usr/include" -+ "${_nix_cmake_libc_dev}/include" - ) - --unset(_cmake_sysroot_compile) -+unset(_nix_cmake_libc) -+unset(_nix_cmake_libc_dev) - - # Reminder when adding new locations computed from environment variables - # please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst -diff --git a/Modules/Platform/WindowsPaths.cmake b/Modules/Platform/WindowsPaths.cmake -index b9e2f17979..ab517cd4a7 100644 ---- a/Modules/Platform/WindowsPaths.cmake -+++ b/Modules/Platform/WindowsPaths.cmake -@@ -70,7 +70,7 @@ endif() - - if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") - # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set) -- list(APPEND CMAKE_SYSTEM_PREFIX_PATH /) -+ # list(APPEND CMAKE_SYSTEM_PREFIX_PATH /) - endif() - - list(APPEND CMAKE_SYSTEM_INCLUDE_PATH diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/002-application-services.diff b/nixpkgs/pkgs/development/tools/build-managers/cmake/002-application-services.diff deleted file mode 100644 index 56f7cd266b7a..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/cmake/002-application-services.diff +++ /dev/null @@ -1,39 +0,0 @@ -diff -Naur cmake-3.25.1-old/Source/CMakeLists.txt cmake-3.25.1-new/Source/CMakeLists.txt ---- cmake-3.25.1-old/Source/CMakeLists.txt 2022-11-30 10:57:03.000000000 -0300 -+++ cmake-3.25.1-new/Source/CMakeLists.txt 2022-12-19 01:00:08.412064304 -0300 -@@ -916,7 +916,6 @@ - # On Apple we need CoreFoundation and CoreServices - if(APPLE) - target_link_libraries(CMakeLib PUBLIC "-framework CoreFoundation") -- target_link_libraries(CMakeLib PUBLIC "-framework CoreServices") - endif() - - if(WIN32 AND NOT UNIX) -diff -Naur cmake-3.25.1-old/Source/cmGlobalXCodeGenerator.cxx cmake-3.25.1-new/Source/cmGlobalXCodeGenerator.cxx ---- cmake-3.25.1-old/Source/cmGlobalXCodeGenerator.cxx 2022-11-30 10:57:03.000000000 -0300 -+++ cmake-3.25.1-new/Source/cmGlobalXCodeGenerator.cxx 2022-12-19 01:00:56.065135169 -0300 -@@ -56,10 +56,6 @@ - - #if !defined(CMAKE_BOOTSTRAP) && defined(__APPLE__) - # include <CoreFoundation/CoreFoundation.h> --# if !TARGET_OS_IPHONE --# define HAVE_APPLICATION_SERVICES --# include <ApplicationServices/ApplicationServices.h> --# endif - #endif - - #if !defined(CMAKE_BOOTSTRAP) -diff -Naur cmake-3.25.1-old/Utilities/cmlibarchive/CMakeLists.txt cmake-3.25.1-new/Utilities/cmlibarchive/CMakeLists.txt ---- cmake-3.25.1-old/Utilities/cmlibarchive/CMakeLists.txt 2022-11-30 10:57:03.000000000 -0300 -+++ cmake-3.25.1-new/Utilities/cmlibarchive/CMakeLists.txt 2022-12-19 01:01:43.392205981 -0300 -@@ -2041,10 +2041,6 @@ - ADD_CUSTOM_TARGET(run_all_tests) - ENDIF(ENABLE_TEST) - --# We need CoreServices on Mac OS. --IF(APPLE) -- LIST(APPEND ADDITIONAL_LIBS "-framework CoreServices") --ENDIF(APPLE) - - add_subdirectory(libarchive) - IF(0) # CMake does not build libarchive's command-line tools. diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/003-libuv-application-services.diff b/nixpkgs/pkgs/development/tools/build-managers/cmake/003-libuv-application-services.diff deleted file mode 100644 index 6607a9c6ed1f..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/cmake/003-libuv-application-services.diff +++ /dev/null @@ -1,55 +0,0 @@ -diff --git a/Utilities/cmlibuv/CMakeLists.txt b/Utilities/cmlibuv/CMakeLists.txt -index 7625cf65d9..167903e309 100644 ---- a/Utilities/cmlibuv/CMakeLists.txt -+++ b/Utilities/cmlibuv/CMakeLists.txt -@@ -193,6 +193,22 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - src/unix/kqueue.c - src/unix/proctitle.c - ) -+ -+ include(CheckIncludeFile) -+ -+ check_include_file("ApplicationServices/ApplicationServices.h" HAVE_ApplicationServices) -+ if (HAVE_ApplicationServices) -+ list(APPEND uv_defines -+ HAVE_APPLICATIONSERVICES_APPLICATIONSERVICES_H=1 -+ ) -+ endif() -+ -+ check_include_file("CoreServices/CoreServices.h" HAVE_CoreServices) -+ if (HAVE_CoreServices) -+ list(APPEND uv_defines -+ HAVE_CORESERVICES_CORESERVICES_H=1 -+ ) -+ endif() - endif() - - if(CMAKE_SYSTEM_NAME STREQUAL "Linux") -diff --git a/Utilities/cmlibuv/src/unix/fsevents.c b/Utilities/cmlibuv/src/unix/fsevents.c -index a51f29b3f6..3f6bf01968 100644 ---- a/Utilities/cmlibuv/src/unix/fsevents.c -+++ b/Utilities/cmlibuv/src/unix/fsevents.c -@@ -21,7 +21,7 @@ - #include "uv.h" - #include "internal.h" - --#if TARGET_OS_IPHONE || MAC_OS_X_VERSION_MAX_ALLOWED < 1070 -+#if !HAVE_CORESERVICES_CORESERVICES_H || MAC_OS_X_VERSION_MAX_ALLOWED < 1070 - - /* iOS (currently) doesn't provide the FSEvents-API (nor CoreServices) */ - /* macOS prior to 10.7 doesn't provide the full FSEvents API so use kqueue */ -@@ -39,7 +39,7 @@ int uv__fsevents_close(uv_fs_event_t* handle) { - void uv__fsevents_loop_delete(uv_loop_t* loop) { - } - --#else /* TARGET_OS_IPHONE */ -+#else /* !HAVE_CORESERVICES_CORESERVICES_H */ - - #include "darwin-stub.h" - -@@ -920,4 +920,4 @@ int uv__fsevents_close(uv_fs_event_t* handle) { - return 0; - } - --#endif /* TARGET_OS_IPHONE */ -+#endif /* !HAVE_CORESERVICES_CORESERVICES_H */ diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/004-cygwin.diff b/nixpkgs/pkgs/development/tools/build-managers/cmake/004-cygwin.diff deleted file mode 100644 index 982aba17e874..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/cmake/004-cygwin.diff +++ /dev/null @@ -1,274 +0,0 @@ ---- cmake-3.2.2/Source/cmFileCommand.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/ccmFileCommand.cxx 2015-06-10 11:02:27.345598700 +0200 -@@ -1179,7 +1179,7 @@ - MatchProperties CollectMatchProperties(const char* file) - { - // Match rules are case-insensitive on some platforms. --#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) -+#if defined(_WIN32) || defined(__APPLE__) - std::string lower = cmSystemTools::LowerCase(file); - const char* file_to_match = lower.c_str(); - #else ---- cmake-3.2.2/Source/cmInstallCommand.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/cmInstallCommand.cxx 2015-06-10 11:04:19.257935200 +0200 -@@ -1138,7 +1138,7 @@ - { - literal_args += " REGEX \""; - // Match rules are case-insensitive on some platforms. --#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) -+#if defined(_WIN32) || defined(__APPLE__) - std::string regex = cmSystemTools::LowerCase(args[i]); - #else - std::string regex = args[i]; ---- cmake-3.2.2/Source/kwsys/Glob.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/Glob.cxx 2015-06-10 11:05:51.602674000 +0200 -@@ -37,7 +37,7 @@ - #include <string.h> - namespace KWSYS_NAMESPACE - { --#if defined(_WIN32) || defined(__APPLE__) || defined(__CYGWIN__) -+#if defined(_WIN32) || defined(__APPLE__) - // On Windows and apple, no difference between lower and upper case - # define KWSYS_GLOB_CASE_INDEPENDENT - #endif ---- cmake-3.2.2/Source/kwsys/SystemInformation.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/SystemInformation.cxx 2015-06-10 11:13:00.308303500 +0200 -@@ -911,7 +911,7 @@ - // Hide implementation details in an anonymous namespace. - namespace { - // ***************************************************************************** --#if defined(__linux) || defined(__APPLE__) -+#if defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__) - int LoadLines( - FILE *file, - kwsys_stl::vector<kwsys_stl::string> &lines) -@@ -947,7 +947,7 @@ - return nRead; - } - --# if defined(__linux) -+# if defined(__linux) || defined(__CYGWIN__) - // ***************************************************************************** - int LoadLines( - const char *fileName, -@@ -986,7 +986,7 @@ - } - #endif - --#if defined(__linux) -+#if defined(__linux) || defined(__CYGWIN__) - // **************************************************************************** - template<typename T> - int GetFieldsFromFile( -@@ -3132,7 +3132,6 @@ - pos = buffer.find("processor\t",pos+1); - } - --#ifdef __linux - // Find the largest physical id. - int maxId = -1; - kwsys_stl::string idc = -@@ -3165,14 +3164,6 @@ - atoi(this->ExtractValueFromCpuInfoFile(buffer,"ncpus active").c_str()); - } - --#else // __CYGWIN__ -- // does not have "physical id" entries, neither "cpu cores" -- // this has to be fixed for hyper-threading. -- kwsys_stl::string cpucount = -- this->ExtractValueFromCpuInfoFile(buffer,"cpu count"); -- this->NumberOfPhysicalCPU= -- this->NumberOfLogicalCPU = atoi(cpucount.c_str()); --#endif - // gotta have one, and if this is 0 then we get a / by 0n - // better to have a bad answer than a crash - if(this->NumberOfPhysicalCPU <= 0) -@@ -3370,7 +3361,7 @@ - GlobalMemoryStatusEx(&statex); - return statex.ullTotalPhys/1024; - # endif --#elif defined(__linux) -+#elif defined(__linux) || defined(__CYGWIN__) - SystemInformation::LongLong memTotal=0; - int ierr=GetFieldFromFile("/proc/meminfo","MemTotal:",memTotal); - if (ierr) -@@ -3501,7 +3492,7 @@ - GlobalMemoryStatusEx(&statex); - return (statex.ullTotalPhys - statex.ullAvailPhys)/1024; - # endif --#elif defined(__linux) -+#elif defined(__linux) || defined(__CYGWIN__) - const char *names[3]={"MemTotal:","MemFree:",NULL}; - SystemInformation::LongLong values[2]={SystemInformation::LongLong(0)}; - int ierr=GetFieldsFromFile("/proc/meminfo",names,values); -@@ -3560,7 +3551,7 @@ - return -2; - } - return pmc.WorkingSetSize/1024; --#elif defined(__linux) -+#elif defined(__linux) || defined(__CYGWIN__) - SystemInformation::LongLong memUsed=0; - int ierr=GetFieldFromFile("/proc/self/status","VmRSS:",memUsed); - if (ierr) -@@ -3612,7 +3603,7 @@ - { - #if defined(_WIN32) - return GetCurrentProcessId(); --#elif defined(__linux) || defined(__APPLE__) -+#elif defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__) - return getpid(); - #else - return -1; ---- cmake-3.2.2/Source/kwsys/SystemTools.cxx 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/SystemTools.cxx 2015-06-10 11:21:58.980443200 +0200 -@@ -93,19 +93,12 @@ - # if defined(_MSC_VER) && _MSC_VER >= 1800 - # define KWSYS_WINDOWS_DEPRECATED_GetVersionEx - # endif --#elif defined (__CYGWIN__) --# include <windows.h> --# undef _WIN32 - #endif - - #if !KWSYS_CXX_HAS_ENVIRON_IN_STDLIB_H - extern char **environ; - #endif - --#ifdef __CYGWIN__ --# include <sys/cygwin.h> --#endif -- - // getpwnam doesn't exist on Windows and Cray Xt3/Catamount - // same for TIOCGWINSZ - #if defined(_WIN32) || defined (__LIBCATAMOUNT__) -@@ -1148,15 +1141,7 @@ - { - return false; - } --#if defined(__CYGWIN__) -- // Convert filename to native windows path if possible. -- char winpath[MAX_PATH]; -- if(SystemTools::PathCygwinToWin32(filename.c_str(), winpath)) -- { -- return (GetFileAttributesA(winpath) != INVALID_FILE_ATTRIBUTES); -- } -- return access(filename.c_str(), R_OK) == 0; --#elif defined(_WIN32) -+#if defined(_WIN32) - return (GetFileAttributesW( - SystemTools::ConvertToWindowsExtendedPath(filename).c_str()) - != INVALID_FILE_ATTRIBUTES); -@@ -1190,28 +1175,6 @@ - } - - //---------------------------------------------------------------------------- --#ifdef __CYGWIN__ --bool SystemTools::PathCygwinToWin32(const char *path, char *win32_path) --{ -- SystemToolsTranslationMap::iterator i = -- SystemTools::Cyg2Win32Map->find(path); -- -- if (i != SystemTools::Cyg2Win32Map->end()) -- { -- strncpy(win32_path, i->second.c_str(), MAX_PATH); -- } -- else -- { -- if(cygwin_conv_path(CCP_POSIX_TO_WIN_A, path, win32_path, MAX_PATH) != 0) -- { -- win32_path[0] = 0; -- } -- SystemToolsTranslationMap::value_type entry(path, win32_path); -- SystemTools::Cyg2Win32Map->insert(entry); -- } -- return win32_path[0] != 0; --} --#endif - - bool SystemTools::Touch(const kwsys_stl::string& filename, bool create) - { -@@ -4307,7 +4270,7 @@ - - bool SystemTools::FileIsFullPath(const char* in_name, size_t len) - { --#if defined(_WIN32) || defined(__CYGWIN__) -+#if defined(_WIN32) - // On Windows, the name must be at least two characters long. - if(len < 2) - { -@@ -5078,9 +5041,6 @@ - static unsigned int SystemToolsManagerCount; - SystemToolsTranslationMap *SystemTools::TranslationMap; - SystemToolsTranslationMap *SystemTools::LongPathMap; --#ifdef __CYGWIN__ --SystemToolsTranslationMap *SystemTools::Cyg2Win32Map; --#endif - - // SystemToolsManager manages the SystemTools singleton. - // SystemToolsManager should be included in any translation unit -@@ -5126,9 +5086,6 @@ - // Allocate the translation map first. - SystemTools::TranslationMap = new SystemToolsTranslationMap; - SystemTools::LongPathMap = new SystemToolsTranslationMap; --#ifdef __CYGWIN__ -- SystemTools::Cyg2Win32Map = new SystemToolsTranslationMap; --#endif - - // Add some special translation paths for unix. These are not added - // for windows because drive letters need to be maintained. Also, -@@ -5183,9 +5140,6 @@ - { - delete SystemTools::TranslationMap; - delete SystemTools::LongPathMap; --#ifdef __CYGWIN__ -- delete SystemTools::Cyg2Win32Map; --#endif - } - - ---- cmake-3.2.2/Source/kwsys/SystemTools.hxx.in 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Source/kwsys/SystemTools.hxx.in 2015-06-10 11:24:24.271286600 +0200 -@@ -298,15 +298,6 @@ - static bool FileExists(const kwsys_stl::string& filename); - - /** -- * Converts Cygwin path to Win32 path. Uses dictionary container for -- * caching and calls to cygwin_conv_to_win32_path from Cygwin dll -- * for actual translation. Returns true on success, else false. -- */ --#ifdef __CYGWIN__ -- static bool PathCygwinToWin32(const char *path, char *win32_path); --#endif -- -- /** - * Return file length - */ - static unsigned long FileLength(const kwsys_stl::string& filename); -@@ -942,9 +933,6 @@ - */ - static SystemToolsTranslationMap *TranslationMap; - static SystemToolsTranslationMap *LongPathMap; --#ifdef __CYGWIN__ -- static SystemToolsTranslationMap *Cyg2Win32Map; --#endif - friend class SystemToolsManager; - }; - ---- cmake-3.2.2/Modules/FindCurses.cmake 2015-04-13 19:09:00.000000000 +0200 -+++ cmake-3.2.2/Modules/FindCurses.cmake 2015-06-10 12:10:19.682030300 +0200 -@@ -60,15 +60,6 @@ - if(CURSES_NCURSES_LIBRARY AND ((NOT CURSES_CURSES_LIBRARY) OR CURSES_NEED_NCURSES)) - set(CURSES_USE_NCURSES TRUE) - endif() --# http://cygwin.com/ml/cygwin-announce/2010-01/msg00002.html --# cygwin ncurses stopped providing curses.h symlinks see above --# message. Cygwin is an ncurses package, so force ncurses on --# cygwin if the curses.h is missing --if(CYGWIN) -- if(NOT EXISTS /usr/include/curses.h) -- set(CURSES_USE_NCURSES TRUE) -- endif() --endif() - - - # Not sure the logic is correct here. diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/005-remove-systemconfiguration-dep.diff b/nixpkgs/pkgs/development/tools/build-managers/cmake/005-remove-systemconfiguration-dep.diff deleted file mode 100644 index 76aa91cff92c..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/cmake/005-remove-systemconfiguration-dep.diff +++ /dev/null @@ -1,67 +0,0 @@ ---- a/Utilities/cmcurl/CMakeLists.txt -+++ b/Utilities/cmcurl/CMakeLists.txt -@@ -391,13 +391,6 @@ if(ENABLE_IPV6 AND NOT WIN32) - - if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT ENABLE_ARES) - set(use_core_foundation ON) -- -- find_library(SYSTEMCONFIGURATION_FRAMEWORK "SystemConfiguration") -- if(NOT SYSTEMCONFIGURATION_FRAMEWORK) -- message(FATAL_ERROR "SystemConfiguration framework not found") -- endif() -- -- list(APPEND CURL_LIBS "-framework SystemConfiguration") - endif() - endif() - ---- a/Utilities/cmcurl/lib/curl_setup.h -+++ b/Utilities/cmcurl/lib/curl_setup.h -@@ -257,11 +257,7 @@ - * performing this task will result in a synthesized IPv6 address. - */ - #if defined(__APPLE__) && !defined(USE_ARES) --#include <TargetConditionals.h> - #define USE_RESOLVE_ON_IPS 1 --# if defined(TARGET_OS_OSX) && TARGET_OS_OSX --# define CURL_OSX_CALL_COPYPROXIES 1 --# endif - #endif - - #ifdef USE_LWIPSOCK ---- a/Utilities/cmcurl/lib/hostip.c -+++ b/Utilities/cmcurl/lib/hostip.c -@@ -68,10 +68,6 @@ - #include "curl_memory.h" - #include "memdebug.h" - --#if defined(ENABLE_IPV6) && defined(CURL_OSX_CALL_COPYPROXIES) --#include <SystemConfiguration/SCDynamicStoreCopySpecific.h> --#endif -- - #if defined(CURLRES_SYNCH) && \ - defined(HAVE_ALARM) && defined(SIGALRM) && defined(HAVE_SIGSETJMP) - /* alarm-based timeouts can only be used with all the dependencies satisfied */ -@@ -661,23 +657,6 @@ enum resolve_t Curl_resolv(struct Curl_easy *data, - return CURLRESOLV_ERROR; - } - --#if defined(ENABLE_IPV6) && defined(CURL_OSX_CALL_COPYPROXIES) -- { -- /* -- * The automagic conversion from IPv4 literals to IPv6 literals only -- * works if the SCDynamicStoreCopyProxies system function gets called -- * first. As Curl currently doesn't support system-wide HTTP proxies, we -- * therefore don't use any value this function might return. -- * -- * This function is only available on a macOS and is not needed for -- * IPv4-only builds, hence the conditions above. -- */ -- CFDictionaryRef dict = SCDynamicStoreCopyProxies(NULL); -- if(dict) -- CFRelease(dict); -- } --#endif -- - #ifndef USE_RESOLVE_ON_IPS - /* First check if this is an IPv4 address string */ - if(Curl_inet_pton(AF_INET, hostname, &in) > 0) diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/006-darwin-always-set-runtime-c-flag.diff b/nixpkgs/pkgs/development/tools/build-managers/cmake/006-darwin-always-set-runtime-c-flag.diff deleted file mode 100644 index dc10e6b34231..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/cmake/006-darwin-always-set-runtime-c-flag.diff +++ /dev/null @@ -1,14 +0,0 @@ -Revert of commit 1af23c4de2c7d58c06171d70b37794b5c860d5f4. ---- b/Modules/Platform/Darwin.cmake -+++ a/Modules/Platform/Darwin.cmake -@@ -47,9 +47,7 @@ - set(CMAKE_SHARED_MODULE_SUFFIX ".so") - set(CMAKE_MODULE_EXISTS 1) - set(CMAKE_DL_LIBS "") -+set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") --if(NOT "${_CURRENT_OSX_VERSION}" VERSION_LESS "10.5") -- set(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "-Wl,-rpath,") --endif() - - foreach(lang C CXX OBJC OBJCXX) - set(CMAKE_${lang}_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ") diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/check-pc-files-hook.sh b/nixpkgs/pkgs/development/tools/build-managers/cmake/check-pc-files-hook.sh deleted file mode 100644 index 94d1b7b53556..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/cmake/check-pc-files-hook.sh +++ /dev/null @@ -1,18 +0,0 @@ -cmakePcfileCheckPhase() { - while IFS= read -rd $'\0' file; do - grepout=$(grep --line-number '}//nix/store' "$file" || true) - if [ -n "$grepout" ]; then - { - echo "Broken paths found in a .pc file! $file" - echo "The following lines have issues (specifically '//' in paths)." - echo "$grepout" - echo "It is very likely that paths are being joined improperly." - echo 'ex: "${prefix}/@CMAKE_INSTALL_LIBDIR@" should be "@CMAKE_INSTALL_FULL_LIBDIR@"' - echo "Please see https://github.com/NixOS/nixpkgs/issues/144170 for more details." - exit 1 - } 1>&2 - fi - done < <(find "${!outputDev}" -iname "*.pc" -print0) -} - -postFixupHooks+=(cmakePcfileCheckPhase) diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix deleted file mode 100644 index 00715130a000..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix +++ /dev/null @@ -1,173 +0,0 @@ -{ lib -, stdenv -, fetchurl -, buildPackages -, bzip2 -, curlMinimal -, expat -, libarchive -, libuv -, ncurses -, openssl -, pkg-config -, ps -, rhash -, sphinx -, texinfo -, xz -, zlib -, isBootstrap ? false -, useOpenSSL ? !isBootstrap -, useSharedLibraries ? (!isBootstrap && !stdenv.isCygwin) -, uiToolkits ? [] # can contain "ncurses" and/or "qt5" -, buildDocs ? !(isBootstrap || (uiToolkits == [])) -, darwin -, libsForQt5 -}: - -let - inherit (darwin.apple_sdk.frameworks) SystemConfiguration; - inherit (libsForQt5) qtbase wrapQtAppsHook; - cursesUI = lib.elem "ncurses" uiToolkits; - qt5UI = lib.elem "qt5" uiToolkits; -in -# Accepts only "ncurses" and "qt5" as possible uiToolkits -assert lib.subtractLists [ "ncurses" "qt5" ] uiToolkits == []; -# Minimal, bootstrap cmake does not have toolkits -assert isBootstrap -> (uiToolkits == []); -stdenv.mkDerivation (finalAttrs: { - pname = "cmake" - + lib.optionalString isBootstrap "-boot" - + lib.optionalString cursesUI "-cursesUI" - + lib.optionalString qt5UI "-qt5UI"; - version = "3.26.4"; - - src = fetchurl { - url = "https://cmake.org/files/v${lib.versions.majorMinor finalAttrs.version}/cmake-${finalAttrs.version}.tar.gz"; - hash = "sha256-MTtogMKRvU/jHAqlHW5iZZKCpSHmlfMNXMDSWrvVwgg="; - }; - - patches = [ - # Don't search in non-Nix locations such as /usr, but do search in our libc. - ./001-search-path.diff - # Don't depend on frameworks. - ./002-application-services.diff - # Derived from https://github.com/libuv/libuv/commit/1a5d4f08238dd532c3718e210078de1186a5920d - ./003-libuv-application-services.diff - ] - ++ lib.optional stdenv.isCygwin ./004-cygwin.diff - # Derived from https://github.com/curl/curl/commit/31f631a142d855f069242f3e0c643beec25d1b51 - ++ lib.optional (stdenv.isDarwin && isBootstrap) ./005-remove-systemconfiguration-dep.diff - # On Darwin, always set CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG. - ++ lib.optional stdenv.isDarwin ./006-darwin-always-set-runtime-c-flag.diff; - - outputs = [ "out" ] ++ lib.optionals buildDocs [ "man" "info" ]; - setOutputFlags = false; - - setupHooks = [ - ./setup-hook.sh - ./check-pc-files-hook.sh - ]; - - depsBuildBuild = [ buildPackages.stdenv.cc ]; - - nativeBuildInputs = finalAttrs.setupHooks ++ [ - pkg-config - ] - ++ lib.optionals buildDocs [ texinfo ] - ++ lib.optionals qt5UI [ wrapQtAppsHook ]; - - buildInputs = lib.optionals useSharedLibraries [ - bzip2 - curlMinimal - expat - libarchive - xz - zlib - libuv - rhash - ] - ++ lib.optional useOpenSSL openssl - ++ lib.optional cursesUI ncurses - ++ lib.optional qt5UI qtbase - ++ lib.optional (stdenv.isDarwin && !isBootstrap) SystemConfiguration; - - propagatedBuildInputs = lib.optional stdenv.isDarwin ps; - - preConfigure = '' - fixCmakeFiles . - substituteInPlace Modules/Platform/UnixPaths.cmake \ - --subst-var-by libc_bin ${lib.getBin stdenv.cc.libc} \ - --subst-var-by libc_dev ${lib.getDev stdenv.cc.libc} \ - --subst-var-by libc_lib ${lib.getLib stdenv.cc.libc} - # CC_FOR_BUILD and CXX_FOR_BUILD are used to bootstrap cmake - configureFlags="--parallel=''${NIX_BUILD_CORES:-1} CC=$CC_FOR_BUILD CXX=$CXX_FOR_BUILD $configureFlags" - ''; - - configureFlags = [ - "CXXFLAGS=-Wno-elaborated-enum-base" - "--docdir=share/doc/${finalAttrs.pname}-${finalAttrs.version}" - ] ++ (if useSharedLibraries - then [ "--no-system-jsoncpp" "--system-libs" ] - else [ "--no-system-libs" ]) # FIXME: cleanup - ++ lib.optional qt5UI "--qt-gui" - ++ lib.optionals buildDocs [ - "--sphinx-build=${sphinx}/bin/sphinx-build" - "--sphinx-info" - "--sphinx-man" - ] - # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/20568 - ++ lib.optionals stdenv.hostPlatform.is32bit [ - "CFLAGS=-D_FILE_OFFSET_BITS=64" - "CXXFLAGS=-D_FILE_OFFSET_BITS=64" - ] - ++ [ - "--" - # We should set the proper `CMAKE_SYSTEM_NAME`. - # http://www.cmake.org/Wiki/CMake_Cross_Compiling - # - # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and - # strip. Otherwise they are taken to be relative to the source root of the - # package being built. - "-DCMAKE_CXX_COMPILER=${stdenv.cc.targetPrefix}c++" - "-DCMAKE_C_COMPILER=${stdenv.cc.targetPrefix}cc" - "-DCMAKE_AR=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar" - "-DCMAKE_RANLIB=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib" - "-DCMAKE_STRIP=${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip" - - "-DCMAKE_USE_OPENSSL=${if useOpenSSL then "ON" else "OFF"}" - # Avoid depending on frameworks. - "-DBUILD_CursesDialog=${if cursesUI then "ON" else "OFF"}" - ]; - - # make install attempts to use the just-built cmake - preInstall = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) '' - sed -i 's|bin/cmake|${buildPackages.cmakeMinimal}/bin/cmake|g' Makefile - ''; - - dontUseCmakeConfigure = true; - enableParallelBuilding = true; - - # This isn't an autoconf configure script; triples are passed via - # CMAKE_SYSTEM_NAME, etc. - configurePlatforms = [ ]; - - doCheck = false; # fails - - meta = { - homepage = "https://cmake.org/"; - description = "Cross-platform, open-source build system generator"; - longDescription = '' - CMake is an open-source, cross-platform family of tools designed to build, - test and package software. CMake is used to control the software - compilation process using simple platform and compiler independent - configuration files, and generate native makefiles and workspaces that can - be used in the compiler environment of your choice. - ''; - changelog = "https://cmake.org/cmake/help/v${lib.versions.majorMinor finalAttrs.version}/release/${lib.versions.majorMinor finalAttrs.version}.html"; - license = lib.licenses.bsd3; - maintainers = with lib.maintainers; [ ttuegel lnl7 AndersonTorres ]; - platforms = lib.platforms.all; - broken = (qt5UI && stdenv.isDarwin); - }; -}) diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh deleted file mode 100755 index b28ed42b6896..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh +++ /dev/null @@ -1,184 +0,0 @@ -addCMakeParams() { - addToSearchPath CMAKE_PREFIX_PATH $1 -} - -fixCmakeFiles() { - # Replace occurences of /usr and /opt by /var/empty. - echo "fixing cmake files..." - find "$1" \( -type f -name "*.cmake" -o -name "*.cmake.in" -o -name CMakeLists.txt \) -print | - while read fn; do - sed -e 's^/usr\([ /]\|$\)^/var/empty\1^g' -e 's^/opt\([ /]\|$\)^/var/empty\1^g' < "$fn" > "$fn.tmp" - mv "$fn.tmp" "$fn" - done -} - -cmakeConfigurePhase() { - runHook preConfigure - - # default to CMake defaults if unset - : ${cmakeBuildDir:=build} - - export CTEST_OUTPUT_ON_FAILURE=1 - if [ -n "${enableParallelChecking-1}" ]; then - export CTEST_PARALLEL_LEVEL=$NIX_BUILD_CORES - fi - - if [ -z "${dontFixCmake-}" ]; then - fixCmakeFiles . - fi - - if [ -z "${dontUseCmakeBuildDir-}" ]; then - mkdir -p "$cmakeBuildDir" - cd "$cmakeBuildDir" - : ${cmakeDir:=..} - else - : ${cmakeDir:=.} - fi - - if [ -z "${dontAddPrefix-}" ]; then - cmakeFlags="-DCMAKE_INSTALL_PREFIX=$prefix $cmakeFlags" - fi - - # We should set the proper `CMAKE_SYSTEM_NAME`. - # http://www.cmake.org/Wiki/CMake_Cross_Compiling - # - # Unfortunately cmake seems to expect absolute paths for ar, ranlib, and - # strip. Otherwise they are taken to be relative to the source root of the - # package being built. - cmakeFlags="-DCMAKE_CXX_COMPILER=$CXX $cmakeFlags" - cmakeFlags="-DCMAKE_C_COMPILER=$CC $cmakeFlags" - cmakeFlags="-DCMAKE_AR=$(command -v $AR) $cmakeFlags" - cmakeFlags="-DCMAKE_RANLIB=$(command -v $RANLIB) $cmakeFlags" - cmakeFlags="-DCMAKE_STRIP=$(command -v $STRIP) $cmakeFlags" - - # on macOS we want to prefer Unix-style headers to Frameworks - # because we usually do not package the framework - cmakeFlags="-DCMAKE_FIND_FRAMEWORK=LAST $cmakeFlags" - - # we never want to use the global macOS SDK - cmakeFlags="-DCMAKE_OSX_SYSROOT= $cmakeFlags" - - # correctly detect our clang compiler - cmakeFlags="-DCMAKE_POLICY_DEFAULT_CMP0025=NEW $cmakeFlags" - - # This installs shared libraries with a fully-specified install - # name. By default, cmake installs shared libraries with just the - # basename as the install name, which means that, on Darwin, they - # can only be found by an executable at runtime if the shared - # libraries are in a system path or in the same directory as the - # executable. This flag makes the shared library accessible from its - # nix/store directory. - cmakeFlags="-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib $cmakeFlags" - - # The docdir flag needs to include PROJECT_NAME as per GNU guidelines, - # try to extract it from CMakeLists.txt. - if [[ -z "$shareDocName" ]]; then - local cmakeLists="${cmakeDir}/CMakeLists.txt" - if [[ -f "$cmakeLists" ]]; then - local shareDocName="$(grep --only-matching --perl-regexp --ignore-case '\bproject\s*\(\s*"?\K([^[:space:]")]+)' < "$cmakeLists" | head -n1)" - fi - # The argument sometimes contains garbage or variable interpolation. - # When that is the case, let’s fall back to the derivation name. - if [[ -z "$shareDocName" ]] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_+-]'; then - if [[ -n "${pname-}" ]]; then - shareDocName="$pname" - else - shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')" - fi - fi - fi - - # This ensures correct paths with multiple output derivations - # It requires the project to use variables from GNUInstallDirs module - # https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html - cmakeFlags="-DCMAKE_INSTALL_BINDIR=${!outputBin}/bin $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_SBINDIR=${!outputBin}/sbin $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_INCLUDEDIR=${!outputInclude}/include $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_OLDINCLUDEDIR=${!outputInclude}/include $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_MANDIR=${!outputMan}/share/man $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_INFODIR=${!outputInfo}/share/info $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_DOCDIR=${!outputDoc}/share/doc/${shareDocName} $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_LIBDIR=${!outputLib}/lib $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_LIBEXECDIR=${!outputLib}/libexec $cmakeFlags" - cmakeFlags="-DCMAKE_INSTALL_LOCALEDIR=${!outputLib}/share/locale $cmakeFlags" - - # Don’t build tests when doCheck = false - if [ -z "${doCheck-}" ]; then - cmakeFlags="-DBUILD_TESTING=OFF $cmakeFlags" - fi - - # Always build Release, to ensure optimisation flags - cmakeFlags="-DCMAKE_BUILD_TYPE=${cmakeBuildType:-Release} $cmakeFlags" - - # Disable user package registry to avoid potential side effects - # and unecessary attempts to access non-existent home folder - # https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#disabling-the-package-registry - cmakeFlags="-DCMAKE_EXPORT_NO_PACKAGE_REGISTRY=ON $cmakeFlags" - cmakeFlags="-DCMAKE_FIND_USE_PACKAGE_REGISTRY=OFF $cmakeFlags" - cmakeFlags="-DCMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY=OFF $cmakeFlags" - - if [ "${buildPhase-}" = ninjaBuildPhase ]; then - cmakeFlags="-GNinja $cmakeFlags" - fi - - echo "cmake flags: $cmakeFlags ${cmakeFlagsArray[@]}" - - cmake "$cmakeDir" $cmakeFlags "${cmakeFlagsArray[@]}" - - if ! [[ -v enableParallelBuilding ]]; then - enableParallelBuilding=1 - echo "cmake: enabled parallel building" - fi - - if ! [[ -v enableParallelInstalling ]]; then - enableParallelInstalling=1 - echo "cmake: enabled parallel installing" - fi - - runHook postConfigure -} - -if [ -z "${dontUseCmakeConfigure-}" -a -z "${configurePhase-}" ]; then - setOutputFlags= - configurePhase=cmakeConfigurePhase -fi - -addEnvHooks "$targetOffset" addCMakeParams - -makeCmakeFindLibs(){ - isystem_seen= - iframework_seen= - for flag in ${NIX_CFLAGS_COMPILE-} ${NIX_LDFLAGS-}; do - if test -n "$isystem_seen" && test -d "$flag"; then - isystem_seen= - export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH-}${CMAKE_INCLUDE_PATH:+:}${flag}" - elif test -n "$iframework_seen" && test -d "$flag"; then - iframework_seen= - export CMAKE_FRAMEWORK_PATH="${CMAKE_FRAMEWORK_PATH-}${CMAKE_FRAMEWORK_PATH:+:}${flag}" - else - isystem_seen= - iframework_seen= - case $flag in - -I*) - export CMAKE_INCLUDE_PATH="${CMAKE_INCLUDE_PATH-}${CMAKE_INCLUDE_PATH:+:}${flag:2}" - ;; - -L*) - export CMAKE_LIBRARY_PATH="${CMAKE_LIBRARY_PATH-}${CMAKE_LIBRARY_PATH:+:}${flag:2}" - ;; - -F*) - export CMAKE_FRAMEWORK_PATH="${CMAKE_FRAMEWORK_PATH-}${CMAKE_FRAMEWORK_PATH:+:}${flag:2}" - ;; - -isystem) - isystem_seen=1 - ;; - -iframework) - iframework_seen=1 - ;; - esac - fi - done -} - -# not using setupHook, because it could be a setupHook adding additional -# include flags to NIX_CFLAGS_COMPILE -postHooks+=(makeCmakeFindLibs) diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch deleted file mode 100644 index 0a2eda9de9ac..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/boost-Do-not-add-system-paths-on-nix.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff -Naur meson-0.60.2-old/mesonbuild/dependencies/boost.py meson-0.60.2-new/mesonbuild/dependencies/boost.py ---- meson-0.60.2-old/mesonbuild/dependencies/boost.py 2021-11-02 16:58:07.000000000 -0300 -+++ meson-0.60.2-new/mesonbuild/dependencies/boost.py 2021-12-12 19:21:27.895705897 -0300 -@@ -682,16 +682,7 @@ - else: - tmp = [] # type: T.List[Path] - -- # Add some default system paths -- tmp += [Path('/opt/local')] -- tmp += [Path('/usr/local/opt/boost')] -- tmp += [Path('/usr/local')] -- tmp += [Path('/usr')] -- -- # Cleanup paths -- tmp = [x for x in tmp if x.is_dir()] -- tmp = [x.resolve() for x in tmp] -- roots += tmp -+ # Remove such spurious, non-explicit "system" paths for Nix&Nixpkgs - - self.check_and_set_roots(roots, use_system=True) - diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch deleted file mode 100644 index f1e3c76e8b53..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py -index 4176b9a03..faaabf616 100644 ---- a/mesonbuild/scripts/depfixer.py -+++ b/mesonbuild/scripts/depfixer.py -@@ -336,6 +336,15 @@ class Elf(DataSizes): - if not new_rpath: - self.remove_rpath_entry(entrynum) - else: -+ # Clear old rpath to avoid stale references, -+ # not heeding the warning above about de-duplication -+ # since it does not seem to cause issues for us -+ # and not doing so trips up Nix’s reference checker. -+ # See https://github.com/NixOS/nixpkgs/pull/46020 -+ # and https://github.com/NixOS/nixpkgs/issues/95163 -+ self.bf.seek(rp_off) -+ self.bf.write(b'\0'*len(old_rpath)) -+ - self.bf.seek(rp_off) - self.bf.write(new_rpath) - self.bf.write(b'\0') diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix b/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix deleted file mode 100644 index 8758afea8211..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix +++ /dev/null @@ -1,148 +0,0 @@ -{ lib -, stdenv -, fetchFromGitHub -, fetchpatch -, installShellFiles -, ninja -, pkg-config -, python3 -, zlib -, coreutils -, substituteAll -, Foundation -, OpenGL -, AppKit -, Cocoa -, libxcrypt -}: - -python3.pkgs.buildPythonApplication rec { - pname = "meson"; - version = "1.2.1"; - - src = fetchFromGitHub { - owner = "mesonbuild"; - repo = "meson"; - rev = "refs/tags/${version}"; - hash = "sha256-x2VN/6Kg/n6BW5S4nLKfG67dYrSR/G+Aowf6d2Vbc+0="; - }; - - patches = [ - # Meson is currently inspecting fewer variables than autoconf does, which - # makes it harder for us to use setup hooks, etc. Taken from - # https://github.com/mesonbuild/meson/pull/6827 - ./more-env-vars.patch - - # Unlike libtool, vanilla Meson does not pass any information - # about the path library will be installed to to g-ir-scanner, - # breaking the GIR when path other than ${!outputLib}/lib is used. - # We patch Meson to add a --fallback-library-path argument with - # library install_dir to g-ir-scanner. - ./gir-fallback-path.patch - - # In common distributions, RPATH is only needed for internal libraries so - # meson removes everything else. With Nix, the locations of libraries - # are not as predictable, therefore we need to keep them in the RPATH. - # At the moment we are keeping the paths starting with /nix/store. - # https://github.com/NixOS/nixpkgs/issues/31222#issuecomment-365811634 - (substituteAll { - src = ./fix-rpath.patch; - inherit (builtins) storeDir; - }) - - # When Meson removes build_rpath from DT_RUNPATH entry, it just writes - # the shorter NUL-terminated new rpath over the old one to reduce - # the risk of potentially breaking the ELF files. - # But this can cause much bigger problem for Nix as it can produce - # cut-in-half-by-\0 store path references. - # Let’s just clear the whole rpath and hope for the best. - ./clear-old-rpath.patch - - # Patch out default boost search paths to avoid impure builds on - # unsandboxed non-NixOS builds, see: - # https://github.com/NixOS/nixpkgs/issues/86131#issuecomment-711051774 - ./boost-Do-not-add-system-paths-on-nix.patch - - # Nixpkgs cctools does not have bitcode support. - ./disable-bitcode.patch - - # Fix passing multiple --define-variable arguments to pkg-config. - # https://github.com/mesonbuild/meson/pull/10670 - (fetchpatch { - url = "https://github.com/mesonbuild/meson/commit/d5252c5d4cf1c1931fef0c1c98dd66c000891d21.patch"; - sha256 = "GiUNVul1N5Fl8mfqM7vA/r1FdKqImiDYLXMVDt77gvw="; - excludes = [ - "docs/yaml/objects/dep.yaml" - ]; - }) - ]; - - setupHook = ./setup-hook.sh; - - nativeCheckInputs = [ ninja pkg-config ]; - checkInputs = [ zlib ] - ++ lib.optionals stdenv.isDarwin [ Foundation OpenGL AppKit Cocoa ]; - checkPhase = '' - runHook preCheck - - patchShebangs 'test cases' - substituteInPlace 'test cases/native/8 external program shebang parsing/script.int.in' \ - --replace /usr/bin/env ${coreutils}/bin/env - # requires git, creating cyclic dependency - rm -r 'test cases/common/66 vcstag' - # requires glib, creating cyclic dependency - rm -r 'test cases/linuxlike/6 subdir include order' - rm -r 'test cases/linuxlike/9 compiler checks with dependencies' - # requires static zlib, see #66461 - rm -r 'test cases/linuxlike/14 static dynamic linkage' - # Nixpkgs cctools does not have bitcode support. - rm -r 'test cases/osx/7 bitcode' - HOME="$TMPDIR" python ./run_project_tests.py - - runHook postCheck - ''; - - postFixup = '' - pushd $out/bin - # undo shell wrapper as meson tools are called with python - for i in *; do - mv ".$i-wrapped" "$i" - done - popd - - # Do not propagate Python - rm $out/nix-support/propagated-build-inputs - - substituteInPlace "$out/share/bash-completion/completions/meson" \ - --replace "python3 -c " "${python3.interpreter} -c " - ''; - - buildInputs = lib.optionals (python3.pythonOlder "3.9") [ - libxcrypt - ]; - - nativeBuildInputs = [ installShellFiles ]; - - postInstall = '' - installShellCompletion --zsh data/shell-completions/zsh/_meson - installShellCompletion --bash data/shell-completions/bash/meson - ''; - - meta = with lib; { - homepage = "https://mesonbuild.com"; - description = "An open source, fast and friendly build system made in Python"; - longDescription = '' - Meson is an open source build system meant to be both extremely fast, and, - even more importantly, as user friendly as possible. - - The main design point of Meson is that every moment a developer spends - writing or debugging build definitions is a second wasted. So is every - second spent waiting for the build system to actually start compiling - code. - ''; - license = licenses.asl20; - maintainers = with maintainers; [ mbe AndersonTorres ]; - inherit (python3.meta) platforms; - }; -} -# TODO: a more Nixpkgs-tailoired test suite diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/disable-bitcode.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/disable-bitcode.patch deleted file mode 100644 index a72997c10439..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/disable-bitcode.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/mesonbuild/compilers/mixins/clang.py -+++ b/mesonbuild/compilers/mixins/clang.py -@@ -56,10 +56,6 @@ class ClangCompiler(GnuLikeCompiler): - {OptionKey('b_colorout'), OptionKey('b_lto_threads'), OptionKey('b_lto_mode'), OptionKey('b_thinlto_cache'), - OptionKey('b_thinlto_cache_dir')}) - -- # TODO: this really should be part of the linker base_options, but -- # linkers don't have base_options. -- if isinstance(self.linker, AppleDynamicLinker): -- self.base_options.add(OptionKey('b_bitcode')) - # All Clang backends can also do LLVM IR - self.can_compile_suffixes.add('ll') - ---- a/mesonbuild/linkers/linkers.py -+++ b/mesonbuild/linkers/linkers.py -@@ -785,7 +785,7 @@ class AppleDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker): - return self._apply_prefix('-headerpad_max_install_names') - - def bitcode_args(self) -> T.List[str]: -- return self._apply_prefix('-bitcode_bundle') -+ raise MesonException('Nixpkgs cctools does not support bitcode bundles') - - def fatal_warnings(self) -> T.List[str]: - return self._apply_prefix('-fatal_warnings') diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/emulator-hook.sh b/nixpkgs/pkgs/development/tools/build-managers/meson/emulator-hook.sh deleted file mode 100644 index 4f08087cf5f5..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/emulator-hook.sh +++ /dev/null @@ -1,5 +0,0 @@ -add_meson_exe_wrapper_cross_flag() { - mesonFlagsArray+=(--cross-file=@crossFile@) -} - -preConfigureHooks+=(add_meson_exe_wrapper_cross_flag) diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch deleted file mode 100644 index 29bec7903ca9..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/mesonbuild/backend/backends.py -+++ b/mesonbuild/backend/backends.py -@@ -723,6 +723,21 @@ - @staticmethod - def get_rpath_dirs_from_link_args(args: T.List[str]) -> T.Set[str]: - dirs: T.Set[str] = set() -+ -+ nix_ldflags = os.environ.get('NIX_LDFLAGS', '').split() -+ next_is_path = False -+ # Try to add rpaths set by user or ld-wrapper so that they are not removed. -+ # Based on https://github.com/NixOS/nixpkgs/blob/69711a2f5ffe8cda208163be5258266172ff527f/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L148-L177 -+ for flag in nix_ldflags: -+ if flag == '-rpath' or flag == '-L': -+ next_is_path = True -+ elif next_is_path or flag.startswith('-L/'): -+ if flag.startswith('-L/'): -+ flag = flag[2:] -+ if flag.startswith('@storeDir@'): -+ dirs.add(flag) -+ next_is_path = False -+ - # Match rpath formats: - # -Wl,-rpath= - # -Wl,-rpath, diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch deleted file mode 100644 index e6d740265277..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/mesonbuild/modules/gnome.py b/mesonbuild/modules/gnome.py -index 1c6952df7..9466a0b7d 100644 ---- a/mesonbuild/modules/gnome.py -+++ b/mesonbuild/modules/gnome.py -@@ -923,6 +923,16 @@ class GnomeModule(ExtensionModule): - if fatal_warnings: - scan_command.append('--warn-error') - -+ if len(set(girtarget.get_custom_install_dir()[0] for girtarget in girtargets if girtarget.get_custom_install_dir())) > 1: -+ raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets]))) -+ -+ if girtargets[0].get_custom_install_dir(): -+ fallback_libpath = girtargets[0].get_custom_install_dir()[0] -+ else: -+ fallback_libpath = None -+ if fallback_libpath is not None and isinstance(fallback_libpath, str) and len(fallback_libpath) > 0 and fallback_libpath[0] == "/": -+ scan_command += ['--fallback-library-path=' + fallback_libpath] -+ - generated_files = [f for f in libsources if isinstance(f, (GeneratedList, CustomTarget, CustomTargetIndex))] - - scan_target = self._make_gir_target(state, girfile, scan_command, generated_files, depends, kwargs) diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch deleted file mode 100644 index e4ad43550423..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur meson-0.60.2-old/mesonbuild/environment.py meson-0.60.2-new/mesonbuild/environment.py ---- meson-0.60.2-old/mesonbuild/environment.py 2021-11-02 16:58:13.000000000 -0300 -+++ meson-0.60.2-new/mesonbuild/environment.py 2021-12-12 17:44:00.350499307 -0300 -@@ -68,7 +68,7 @@ - # compiling we fall back on the unprefixed host version. This - # allows native builds to never need to worry about the 'BUILD_*' - # ones. -- ([var_name + '_FOR_BUILD'] if is_cross else [var_name]), -+ [var_name + '_FOR_BUILD'] + ([] if is_cross else [var_name]), - # Always just the unprefixed host versions - [var_name] - )[for_machine] diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/setup-hook.sh b/nixpkgs/pkgs/development/tools/build-managers/meson/setup-hook.sh deleted file mode 100644 index 6305a405af21..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/meson/setup-hook.sh +++ /dev/null @@ -1,42 +0,0 @@ -mesonConfigurePhase() { - runHook preConfigure - - if [ -z "${dontAddPrefix-}" ]; then - mesonFlags="--prefix=$prefix $mesonFlags" - fi - - # See multiple-outputs.sh and meson’s coredata.py - mesonFlags="\ - --libdir=${!outputLib}/lib --libexecdir=${!outputLib}/libexec \ - --bindir=${!outputBin}/bin --sbindir=${!outputBin}/sbin \ - --includedir=${!outputInclude}/include \ - --mandir=${!outputMan}/share/man --infodir=${!outputInfo}/share/info \ - --localedir=${!outputLib}/share/locale \ - -Dauto_features=${mesonAutoFeatures:-enabled} \ - -Dwrap_mode=${mesonWrapMode:-nodownload} \ - $mesonFlags" - - mesonFlags="${crossMesonFlags+$crossMesonFlags }--buildtype=${mesonBuildType:-plain} $mesonFlags" - - echo "meson flags: $mesonFlags ${mesonFlagsArray[@]}" - - meson setup build $mesonFlags "${mesonFlagsArray[@]}" - cd build - - if ! [[ -v enableParallelBuilding ]]; then - enableParallelBuilding=1 - echo "meson: enabled parallel building" - fi - - if ! [[ -v enableParallelInstalling ]]; then - enableParallelInstalling=1 - echo "meson: enabled parallel installing" - fi - - runHook postConfigure -} - -if [ -z "${dontUseMesonConfigure-}" -a -z "${configurePhase-}" ]; then - setOutputFlags= - configurePhase=mesonConfigurePhase -fi diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/3.1.2.nix b/nixpkgs/pkgs/development/tools/build-managers/scons/3.1.2.nix new file mode 100644 index 000000000000..097a8ffd519e --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/scons/3.1.2.nix @@ -0,0 +1,38 @@ +{ lib, fetchurl, python3 }: + +let + pname = "scons"; + version = "3.1.2"; + src = fetchurl { + url = "mirror://sourceforge/scons/scons-${version}.tar.gz"; + hash = "sha256-eAHz9i9lRSjict94C+EMDpM36JdlC2Ldzunzn94T+Ps="; + }; +in +python3.pkgs.buildPythonApplication { + inherit pname version src; + + setupHook = ./setup-hook.sh; + + doCheck = true; + + passthru = { + # expose the used python version so tools using this (and extensing scos + # with other python modules) can use the exact same python version. + inherit python3; + python = python3; + }; + + meta = { + description = "An improved, cross-platform substitute for Make"; + longDescription = '' + SCons is an Open Source software construction tool. Think of SCons as an + improved, cross-platform substitute for the classic Make utility with + integrated functionality similar to autoconf/automake and compiler caches + such as ccache. In short, SCons is an easier, more reliable and faster way + to build software. + ''; + homepage = "https://scons.org/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ AndersonTorres ]; + }; +} diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/4.1.0.nix b/nixpkgs/pkgs/development/tools/build-managers/scons/4.1.0.nix new file mode 100644 index 000000000000..65499280c2c4 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/scons/4.1.0.nix @@ -0,0 +1,50 @@ +{ lib, fetchurl, python3 }: + +let + pname = "scons"; + version = "4.1.0"; + src = fetchurl { + url = "mirror://sourceforge/scons/scons-${version}.tar.gz"; + hash = "sha256-ctKNdi4hJnh/Fz49WeCJI5+LL06e8xFNV/ELEgaYXYU="; + }; +in +python3.pkgs.buildPythonApplication { + inherit pname version src; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "build/dist" "dist" \ + --replace "build/doc/man/" "" + ''; + + postInstall = '' + mkdir -p "$out/share/man/man1" + mv "$out/"*.1 "$out/share/man/man1/" + ''; + + setupHook = ./setup-hook.sh; + + # The release tarballs don't contain any tests (runtest.py and test/*): + doCheck = false; + + passthru = { + # expose the used python version so tools using this (and extensing scos + # with other python modules) can use the exact same python version. + inherit python3; + python = python3; + }; + + meta = { + description = "An improved, cross-platform substitute for Make"; + longDescription = '' + SCons is an Open Source software construction tool. Think of SCons as an + improved, cross-platform substitute for the classic Make utility with + integrated functionality similar to autoconf/automake and compiler caches + such as ccache. In short, SCons is an easier, more reliable and faster way + to build software. + ''; + homepage = "https://scons.org/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ AndersonTorres ]; + }; +} diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/4.5.2.nix b/nixpkgs/pkgs/development/tools/build-managers/scons/4.5.2.nix new file mode 100644 index 000000000000..61d1719642e0 --- /dev/null +++ b/nixpkgs/pkgs/development/tools/build-managers/scons/4.5.2.nix @@ -0,0 +1,54 @@ +{ lib, fetchurl, python3 }: + +let + pname = "scons"; + version = "4.5.2"; + src = fetchurl { + url = "mirror://sourceforge/project/scons/scons/${version}/SCons-${version}.tar.gz"; + hash = "sha256-ziaqyV01CnmkGSGWsL6sPLJPTMq84BI+so0zcPV28HI="; + }; +in +python3.pkgs.buildPythonApplication { + inherit pname version src; + + patches = [ + ./env.patch + ]; + + postPatch = '' + substituteInPlace setup.cfg \ + --replace "build/dist" "dist" \ + --replace "build/doc/man/" "" + ''; + + postInstall = '' + mkdir -p "$out/share/man/man1" + mv "$out/"*.1 "$out/share/man/man1/" + ''; + + setupHook = ./setup-hook.sh; + + # The release tarballs don't contain any tests (runtest.py and test/*): + doCheck = false; + + passthru = { + # expose the used python version so tools using this (and extensing scos + # with other python modules) can use the exact same python version. + inherit python3; + python = python3; + }; + + meta = { + description = "An improved, cross-platform substitute for Make"; + longDescription = '' + SCons is an Open Source software construction tool. Think of SCons as an + improved, cross-platform substitute for the classic Make utility with + integrated functionality similar to autoconf/automake and compiler caches + such as ccache. In short, SCons is an easier, more reliable and faster way + to build software. + ''; + homepage = "https://scons.org/"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ AndersonTorres ]; + }; +} diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix b/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix deleted file mode 100644 index 64890d12cea9..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ version, sha256 }: - -{ fetchurl, python, lib }: - -python.pkgs.buildPythonApplication rec { - pname = "scons"; - inherit version; - - src = fetchurl { - url = - if lib.versionAtLeast version "4.3.0" then - "mirror://sourceforge/project/scons/scons/${version}/SCons-${version}.tar.gz" - else - "mirror://sourceforge/scons/scons-${version}.tar.gz"; - inherit sha256; - }; - - setupHook = ./setup-hook.sh; - - patches = lib.optionals (lib.versionAtLeast version "4.3.0") [ - ./env.patch - ]; - - postPatch = lib.optionalString (lib.versionAtLeast version "4.0.0") '' - substituteInPlace setup.cfg \ - --replace "build/dist" "dist" - '' + lib.optionalString (lib.versionAtLeast version "4.1.0") '' - substituteInPlace setup.cfg \ - --replace "build/doc/man/" "" - ''; - - # The release tarballs don't contain any tests (runtest.py and test/*): - doCheck = lib.versionOlder version "4.0.0"; - - postInstall = lib.optionalString (lib.versionAtLeast version "4.1.0") '' - mkdir -p "$out/share/man/man1" - mv "$out/"*.1 "$out/share/man/man1/" - ''; - - passthru = { - # expose the used python version so tools using this (and extensing scos with other python modules) - # can use the exact same python version. - inherit python; - }; - - meta = with lib; { - description = "An improved, cross-platform substitute for Make"; - longDescription = '' - SCons is an Open Source software construction tool. Think of - SCons as an improved, cross-platform substitute for the classic - Make utility with integrated functionality similar to - autoconf/automake and compiler caches such as ccache. In short, - SCons is an easier, more reliable and faster way to build - software. - ''; - homepage = "https://scons.org/"; - changelog = "https://raw.githubusercontent.com/SConsProject/scons/rel_${version}/src/CHANGES.txt"; - license = licenses.mit; - platforms = platforms.all; - maintainers = with lib.maintainers; [ AndersonTorres ]; - }; -} diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix b/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix deleted file mode 100644 index f338d346a701..000000000000 --- a/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ callPackage, python2, python3 }: - -let - mkScons = args: callPackage (import ./common.nix args) { - python = python3; - }; -in { - scons_3_1_2 = (mkScons { - version = "3.1.2"; - sha256 = "1yzq2gg9zwz9rvfn42v5jzl3g4qf1khhny6zfbi2hib55zvg60bq"; - }); - scons_4_1_0 = mkScons { - version = "4.1.0"; - sha256 = "11axk03142ziax6i3wwy9qpqp7r3i7h5jg9y2xzph9i15rv8vlkj"; - }; - scons_latest = mkScons { - version = "4.5.2"; - sha256 = "sha256-ziaqyV01CnmkGSGWsL6sPLJPTMq84BI+so0zcPV28HI="; - }; -} |