diff options
author | Vladimír Čunát <v@cunat.cz> | 2023-11-16 22:06:22 +0100 |
---|---|---|
committer | Vladimír Čunát <v@cunat.cz> | 2023-11-16 22:06:22 +0100 |
commit | a7a8f8253db3f32cc15baf527d36ef7171425eba (patch) | |
tree | 5de25f1c82e7892f6aec7b3e5ddb718ff0c50df2 /pkgs/by-name | |
parent | f31242fcfd14e870eb6898fc8849bc4dee883054 (diff) | |
parent | 391aafc3d6b17ed5517795eb8b9c41ed7c6082e3 (diff) |
Merge #263535: staging-next 2023-10-26
Diffstat (limited to 'pkgs/by-name')
25 files changed, 1358 insertions, 11 deletions
diff --git a/pkgs/by-name/al/alsa-ucm-conf/package.nix b/pkgs/by-name/al/alsa-ucm-conf/package.nix index 75ec2932c8904..b7203a7376387 100644 --- a/pkgs/by-name/al/alsa-ucm-conf/package.nix +++ b/pkgs/by-name/al/alsa-ucm-conf/package.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "alsa-ucm-conf"; - version = "1.2.9"; + version = "1.2.10"; src = fetchurl { url = "mirror://alsa/lib/${pname}-${version}.tar.bz2"; - hash = "sha256-N09oM7/XfQpGdeSqK/t53v6FDlpGpdRUKkWWL0ueJyo="; + hash = "sha256-nCHj8B/wC6p1jfF+hnzTbiTrtBpr7ElzfpkQXhbyrpc="; }; dontBuild = true; diff --git a/pkgs/by-name/ar/arrpc/package.nix b/pkgs/by-name/ar/arrpc/package.nix index 15ad34b39d7ff..eeb4dd4fef250 100644 --- a/pkgs/by-name/ar/arrpc/package.nix +++ b/pkgs/by-name/ar/arrpc/package.nix @@ -21,7 +21,8 @@ buildNpmPackage { # Remove after next release patches = [ (fetchpatch { - url = "https://github.com/OpenAsar/arrpc/pull/50.patch"; + # https://github.com/OpenAsar/arrpc/pull/50 + url = "https://github.com/OpenAsar/arrpc/commit/7fa6c90204450eb3952ce9cddfecb0a5ba5e4313.patch"; hash = "sha256-qFlrbe2a4x811wpmWUcGDe2CPlt9x3HI+/t0P2v4kPc="; }) ]; diff --git a/pkgs/by-name/ce/celluloid/package.nix b/pkgs/by-name/ce/celluloid/package.nix index c0ada66edc605..64ee44b1ad166 100644 --- a/pkgs/by-name/ce/celluloid/package.nix +++ b/pkgs/by-name/ce/celluloid/package.nix @@ -5,6 +5,7 @@ , desktop-file-utils , glib , gtk4 +, libGL , libepoxy , libadwaita , meson @@ -40,6 +41,7 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ glib gtk4 + libGL libadwaita libepoxy mpv diff --git a/pkgs/by-name/cm/cmake/001-search-path.diff b/pkgs/by-name/cm/cmake/001-search-path.diff new file mode 100644 index 0000000000000..04ab0847a7074 --- /dev/null +++ b/pkgs/by-name/cm/cmake/001-search-path.diff @@ -0,0 +1,95 @@ +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/pkgs/by-name/cm/cmake/002-application-services.diff b/pkgs/by-name/cm/cmake/002-application-services.diff new file mode 100644 index 0000000000000..56f7cd266b7af --- /dev/null +++ b/pkgs/by-name/cm/cmake/002-application-services.diff @@ -0,0 +1,39 @@ +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/pkgs/by-name/cm/cmake/003-libuv-application-services.diff b/pkgs/by-name/cm/cmake/003-libuv-application-services.diff new file mode 100644 index 0000000000000..6607a9c6ed1f3 --- /dev/null +++ b/pkgs/by-name/cm/cmake/003-libuv-application-services.diff @@ -0,0 +1,55 @@ +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/pkgs/by-name/cm/cmake/004-cygwin.diff b/pkgs/by-name/cm/cmake/004-cygwin.diff new file mode 100644 index 0000000000000..982aba17e874d --- /dev/null +++ b/pkgs/by-name/cm/cmake/004-cygwin.diff @@ -0,0 +1,274 @@ +--- 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/pkgs/by-name/cm/cmake/005-remove-systemconfiguration-dep.diff b/pkgs/by-name/cm/cmake/005-remove-systemconfiguration-dep.diff new file mode 100644 index 0000000000000..ffd3077d301e6 --- /dev/null +++ b/pkgs/by-name/cm/cmake/005-remove-systemconfiguration-dep.diff @@ -0,0 +1,70 @@ +diff -Naur cmake-3.27.7/Utilities/cmcurl/CMakeLists.txt cmake-3.27.7-new/Utilities/cmcurl/CMakeLists.txt +--- cmake-3.27.7/Utilities/cmcurl/CMakeLists.txt 2023-10-06 10:08:35.000000000 -0300 ++++ cmake-3.27.7-new/Utilities/cmcurl/CMakeLists.txt 2023-10-22 21:51:09.231609901 -0300 +@@ -414,13 +414,6 @@ + + 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() + +diff -Naur cmake-3.27.7/Utilities/cmcurl/lib/curl_setup.h cmake-3.27.7-new/Utilities/cmcurl/lib/curl_setup.h +--- cmake-3.27.7/Utilities/cmcurl/lib/curl_setup.h 2023-10-06 10:08:35.000000000 -0300 ++++ cmake-3.27.7-new/Utilities/cmcurl/lib/curl_setup.h 2023-10-22 21:52:00.214748294 -0300 +@@ -260,11 +260,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 +diff -Naur cmake-3.27.7/Utilities/cmcurl/lib/hostip.c cmake-3.27.7-new/Utilities/cmcurl/lib/hostip.c +--- cmake-3.27.7/Utilities/cmcurl/lib/hostip.c 2023-10-06 10:08:35.000000000 -0300 ++++ cmake-3.27.7-new/Utilities/cmcurl/lib/hostip.c 2023-10-22 21:53:29.249989934 -0300 +@@ -67,10 +67,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) && \ +@@ -743,23 +739,6 @@ + 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/pkgs/by-name/cm/cmake/006-darwin-always-set-runtime-c-flag.diff b/pkgs/by-name/cm/cmake/006-darwin-always-set-runtime-c-flag.diff new file mode 100644 index 0000000000000..dc10e6b342311 --- /dev/null +++ b/pkgs/by-name/cm/cmake/006-darwin-always-set-runtime-c-flag.diff @@ -0,0 +1,14 @@ +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/pkgs/by-name/cm/cmake/check-pc-files-hook.sh b/pkgs/by-name/cm/cmake/check-pc-files-hook.sh new file mode 100644 index 0000000000000..94d1b7b53556e --- /dev/null +++ b/pkgs/by-name/cm/cmake/check-pc-files-hook.sh @@ -0,0 +1,18 @@ +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/pkgs/by-name/cm/cmake/package.nix b/pkgs/by-name/cm/cmake/package.nix new file mode 100644 index 0000000000000..a573147915012 --- /dev/null +++ b/pkgs/by-name/cm/cmake/package.nix @@ -0,0 +1,188 @@ +{ lib +, stdenv +, fetchurl +, buildPackages +, bzip2 +, curlMinimal +, expat +, libarchive +, libuv +, ncurses +, openssl +, pkg-config +, ps +, rhash +, sphinx +, texinfo +, xz +, zlib +, isBootstrap ? null +, isMinimalBuild ? ( + if isBootstrap != null + then lib.warn + "isBootstrap argument is deprecated and will be removed; use isMinimalBuild instead" + isBootstrap + else false) +, useOpenSSL ? !isMinimalBuild +, useSharedLibraries ? (!isMinimalBuild && !stdenv.isCygwin) +, uiToolkits ? [] # can contain "ncurses" and/or "qt5" +, buildDocs ? !(isMinimalBuild || (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 isMinimalBuild -> (uiToolkits == []); +stdenv.mkDerivation (finalAttrs: { + pname = "cmake" + + lib.optionalString isMinimalBuild "-minimal" + + lib.optionalString cursesUI "-cursesUI" + + lib.optionalString qt5UI "-qt5UI"; + version = "3.27.7"; + + src = fetchurl { + url = "https://cmake.org/files/v${lib.versions.majorMinor finalAttrs.version}/cmake-${finalAttrs.version}.tar.gz"; + hash = "sha256-CPcaEGA2vwUfaSdg75VYwFd8Qqw56Wugl+dmK9QVjY4="; + }; + + 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 && isMinimalBuild) ./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 && !isMinimalBuild) 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" + ''; + + # The configuration script is not autoconf-based, although being similar; + # triples and other interesting info are passed via CMAKE_* environment + # variables and commandline switches + configurePlatforms = [ ]; + + configureFlags = [ + "CXXFLAGS=-Wno-elaborated-enum-base" + "--docdir=share/doc/${finalAttrs.pname}-${finalAttrs.version}" + ] ++ (if useSharedLibraries + then [ + "--no-system-cppdap" + "--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. + (lib.cmakeFeature "CMAKE_CXX_COMPILER" "${stdenv.cc.targetPrefix}c++") + (lib.cmakeFeature "CMAKE_C_COMPILER" "${stdenv.cc.targetPrefix}cc") + (lib.cmakeFeature "CMAKE_AR" + "${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ar") + (lib.cmakeFeature "CMAKE_RANLIB" + "${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}ranlib") + (lib.cmakeFeature "CMAKE_STRIP" + "${lib.getBin stdenv.cc.bintools.bintools}/bin/${stdenv.cc.targetPrefix}strip") + + (lib.cmakeBool "CMAKE_USE_OPENSSL" useOpenSSL) + (lib.cmakeBool "BUILD_CursesDialog" cursesUI) + ]; + + # 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; + + 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/pkgs/by-name/cm/cmake/setup-hook.sh b/pkgs/by-name/cm/cmake/setup-hook.sh new file mode 100755 index 0000000000000..b28ed42b6896b --- /dev/null +++ b/pkgs/by-name/cm/cmake/setup-hook.sh @@ -0,0 +1,184 @@ +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/pkgs/by-name/co/cosmic-applets/package.nix b/pkgs/by-name/co/cosmic-applets/package.nix index efb2529e9df25..b71f6d1996893 100644 --- a/pkgs/by-name/co/cosmic-applets/package.nix +++ b/pkgs/by-name/co/cosmic-applets/package.nix @@ -1,7 +1,6 @@ { lib , stdenv , fetchFromGitHub -, rust , rustPlatform , just , pkg-config @@ -52,11 +51,11 @@ rustPlatform.buildRustPackage { justFlags = [ "--set" "prefix" (placeholder "out") - "--set" "target" "${rust.lib.toRustTargetSpecShort stdenv.hostPlatform}/release" + "--set" "target" "${stdenv.hostPlatform.rust.cargoShortTarget}/release" ]; # Force linking to libwayland-client, which is always dlopen()ed. - "CARGO_TARGET_${rust.toRustTargetForUseInEnvVars stdenv.hostPlatform}_RUSTFLAGS" = + "CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_RUSTFLAGS" = map (a: "-C link-arg=${a}") [ "-Wl,--push-state,--no-as-needed" "-lwayland-client" diff --git a/pkgs/by-name/co/cosmic-panel/package.nix b/pkgs/by-name/co/cosmic-panel/package.nix index 9177bcc7ef677..7c8c31f511d41 100644 --- a/pkgs/by-name/co/cosmic-panel/package.nix +++ b/pkgs/by-name/co/cosmic-panel/package.nix @@ -41,11 +41,11 @@ rustPlatform.buildRustPackage { justFlags = [ "--set" "prefix" (placeholder "out") - "--set" "bin-src" "target/${rust.lib.toRustTargetSpecShort stdenv.hostPlatform}/release/cosmic-panel" + "--set" "bin-src" "target/${stdenv.hostPlatform.rust.cargoShortTarget}/release/cosmic-panel" ]; # Force linking to libEGL, which is always dlopen()ed. - "CARGO_TARGET_${rust.toRustTargetForUseInEnvVars stdenv.hostPlatform}_RUSTFLAGS" = + "CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_RUSTFLAGS" = map (a: "-C link-arg=${a}") [ "-Wl,--push-state,--no-as-needed" "-lEGL" diff --git a/pkgs/by-name/ju/justbuild/package.nix b/pkgs/by-name/ju/justbuild/package.nix index 3403edcaaccfc..d630bdf22b308 100644 --- a/pkgs/by-name/ju/justbuild/package.nix +++ b/pkgs/by-name/ju/justbuild/package.nix @@ -11,7 +11,7 @@ openssl, pkg-config, - protobuf3_23, + protobuf_23, grpc, pandoc, python3, @@ -87,14 +87,14 @@ stdenv.mkDerivation rec { # For future updates: The currently used version can be found in the file # etc/repos.json: https://github.com/just-buildsystem/justbuild/blob/master/etc/repos.json # under the key .repositories.protobuf - protobuf3_23 + protobuf_23 python3 ]; postPatch = '' sed -ie 's|\./bin/just-mr.py|${python3}/bin/python3 ./bin/just-mr.py|' bin/bootstrap.py sed -ie 's|#!/usr/bin/env python3|#!${python3}/bin/python3|' bin/parallel-bootstrap-traverser.py - jq '.repositories.protobuf.pkg_bootstrap.local_path = "${protobuf3_23}"' etc/repos.json > etc/repos.json.patched + jq '.repositories.protobuf.pkg_bootstrap.local_path = "${protobuf_23}"' etc/repos.json > etc/repos.json.patched mv etc/repos.json.patched etc/repos.json jq '.repositories.com_github_grpc_grpc.pkg_bootstrap.local_path = "${grpc}"' etc/repos.json > etc/repos.json.patched mv etc/repos.json.patched etc/repos.json diff --git a/pkgs/by-name/me/meson/001-fix-rpath.patch b/pkgs/by-name/me/meson/001-fix-rpath.patch new file mode 100644 index 0000000000000..29bec7903ca98 --- /dev/null +++ b/pkgs/by-name/me/meson/001-fix-rpath.patch @@ -0,0 +1,24 @@ +--- 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/pkgs/by-name/me/meson/002-clear-old-rpath.patch b/pkgs/by-name/me/meson/002-clear-old-rpath.patch new file mode 100644 index 0000000000000..f1e3c76e8b53b --- /dev/null +++ b/pkgs/by-name/me/meson/002-clear-old-rpath.patch @@ -0,0 +1,20 @@ +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/pkgs/by-name/me/meson/003-more-env-vars.patch b/pkgs/by-name/me/meson/003-more-env-vars.patch new file mode 100644 index 0000000000000..e4ad43550423d --- /dev/null +++ b/pkgs/by-name/me/meson/003-more-env-vars.patch @@ -0,0 +1,12 @@ +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/pkgs/by-name/me/meson/004-gir-fallback-path.patch b/pkgs/by-name/me/meson/004-gir-fallback-path.patch new file mode 100644 index 0000000000000..e6d7402652778 --- /dev/null +++ b/pkgs/by-name/me/meson/004-gir-fallback-path.patch @@ -0,0 +1,21 @@ +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/pkgs/by-name/me/meson/005-boost-Do-not-add-system-paths-on-nix.patch b/pkgs/by-name/me/meson/005-boost-Do-not-add-system-paths-on-nix.patch new file mode 100644 index 0000000000000..0a2eda9de9ac6 --- /dev/null +++ b/pkgs/by-name/me/meson/005-boost-Do-not-add-system-paths-on-nix.patch @@ -0,0 +1,21 @@ +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/pkgs/by-name/me/meson/006-disable-bitcode.patch b/pkgs/by-name/me/meson/006-disable-bitcode.patch new file mode 100644 index 0000000000000..a72997c104399 --- /dev/null +++ b/pkgs/by-name/me/meson/006-disable-bitcode.patch @@ -0,0 +1,24 @@ +--- 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/pkgs/by-name/me/meson/emulator-hook.sh b/pkgs/by-name/me/meson/emulator-hook.sh new file mode 100644 index 0000000000000..4f08087cf5f55 --- /dev/null +++ b/pkgs/by-name/me/meson/emulator-hook.sh @@ -0,0 +1,5 @@ +add_meson_exe_wrapper_cross_flag() { + mesonFlagsArray+=(--cross-file=@crossFile@) +} + +preConfigureHooks+=(add_meson_exe_wrapper_cross_flag) diff --git a/pkgs/by-name/me/meson/package.nix b/pkgs/by-name/me/meson/package.nix new file mode 100644 index 0000000000000..6239927848aa5 --- /dev/null +++ b/pkgs/by-name/me/meson/package.nix @@ -0,0 +1,166 @@ +{ lib +, stdenv +, fetchFromGitHub +, fetchpatch +, installShellFiles +, coreutils +, darwin +, libxcrypt +, ninja +, pkg-config +, python3 +, substituteAll +, zlib +}: + +let + inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Foundation OpenGL; +in +python3.pkgs.buildPythonApplication rec { + pname = "meson"; + version = "1.2.3"; + + src = fetchFromGitHub { + owner = "mesonbuild"; + repo = "meson"; + rev = "refs/tags/${version}"; + hash = "sha256-dgYYz3tQDG6Z4eE77WO2dXdardxVzzGaFLQ5znPcTlw="; + }; + + patches = [ + # In typical 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 = ./001-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. + ./002-clear-old-rpath.patch + + # Meson is currently inspecting fewer variables than autoconf does, which + # makes it harder for us to use setup hooks, etc. + # https://github.com/mesonbuild/meson/pull/6827 + ./003-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. + ./004-gir-fallback-path.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 + ./005-boost-Do-not-add-system-paths-on-nix.patch + + # Nixpkgs cctools does not have bitcode support. + ./006-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"; + hash = "sha256-GiUNVul1N5Fl8mfqM7vA/r1FdKqImiDYLXMVDt77gvw="; + excludes = [ + "docs/yaml/objects/dep.yaml" + ]; + }) + ]; + + buildInputs = lib.optionals (python3.pythonOlder "3.9") [ + libxcrypt + ]; + + nativeBuildInputs = [ installShellFiles ]; + + nativeCheckInputs = [ + ninja + pkg-config + ]; + + checkInputs = [ + zlib + ] + ++ lib.optionals stdenv.isDarwin [ + AppKit + Cocoa + Foundation + OpenGL + ]; + + checkPhase = lib.concatStringsSep "\n" ([ + "runHook preCheck" + '' + patchShebangs 'test cases' + substituteInPlace \ + 'test cases/native/8 external program shebang parsing/script.int.in' \ + --replace /usr/bin/env ${coreutils}/bin/env + '' + ] + # Remove problematic tests + ++ (builtins.map (f: ''rm -vr "${f}";'') [ + # requires git, creating cyclic dependency + ''test cases/common/66 vcstag'' + # requires glib, creating cyclic dependency + ''test cases/linuxlike/6 subdir include order'' + ''test cases/linuxlike/9 compiler checks with dependencies'' + # requires static zlib, see #66461 + ''test cases/linuxlike/14 static dynamic linkage'' + # Nixpkgs cctools does not have bitcode support. + ''test cases/osx/7 bitcode'' + ]) + ++ [ + ''HOME="$TMPDIR" python ./run_project_tests.py'' + "runHook postCheck" + ]); + + postInstall = '' + installShellCompletion --zsh data/shell-completions/zsh/_meson + installShellCompletion --bash data/shell-completions/bash/meson + ''; + + 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 " + ''; + + setupHook = ./setup-hook.sh; + + meta = { + 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 = lib.licenses.asl20; + maintainers = with lib.maintainers; [ AndersonTorres ]; + inherit (python3.meta) platforms; + }; +} +# TODO: a more Nixpkgs-tailoired test suite diff --git a/pkgs/by-name/me/meson/setup-hook.sh b/pkgs/by-name/me/meson/setup-hook.sh new file mode 100644 index 0000000000000..85849fbec734a --- /dev/null +++ b/pkgs/by-name/me/meson/setup-hook.sh @@ -0,0 +1,87 @@ +# shellcheck shell=bash disable=SC2206 + +mesonConfigurePhase() { + runHook preConfigure + + local flagsArray=() + + if [ -z "${dontAddPrefix-}" ]; then + flagsArray+=("--prefix=$prefix") + fi + + # See multiple-outputs.sh and meson’s coredata.py + flagsArray+=( + "--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}" + ${crossMesonFlags} + "--buildtype=${mesonBuildType:-plain}" + ) + + flagsArray+=( + $mesonFlags + "${mesonFlagsArray[@]}" + ) + + echoCmd 'mesonConfigurePhase flags' "${flagsArray[@]}" + + meson setup build "${flagsArray[@]}" + cd build || { echoCmd 'mesonConfigurePhase' "could not cd to build"; exit 1; } + + if ! [[ -v enableParallelBuilding ]]; then + enableParallelBuilding=1 + echoCmd 'mesonConfigurePhase' "enabled parallel building" + fi + + if [[ ${checkPhase-ninjaCheckPhase} = ninjaCheckPhase && -z $dontUseMesonCheck ]]; then + checkPhase=mesonCheckPhase + fi + if [[ ${installPhase-ninjaInstallPhase} = ninjaInstallPhase && -z $dontUseMesonInstall ]]; then + installPhase=mesonInstallPhase + fi + + runHook postConfigure +} + +mesonCheckPhase() { + runHook preCheck + + local flagsArray=($mesonCheckFlags "${mesonCheckFlagsArray[@]}") + + echoCmd 'mesonCheckPhase flags' "${flagsArray[@]}" + meson test --no-rebuild "${flagsArray[@]}" + + runHook postCheck +} + +mesonInstallPhase() { + runHook preInstall + + local flagsArray=() + + if [[ -n "$mesonInstallTags" ]]; then + flagsArray+=("--tags" "${mesonInstallTags// /,}") + fi + flagsArray+=( + $mesonInstallFlags + "${mesonInstallFlagsArray[@]}" + ) + + echoCmd 'mesonInstallPhase flags' "${flagsArray[@]}" + meson install --no-rebuild "${flagsArray[@]}" + + runHook postInstall +} + +if [ -z "${dontUseMesonConfigure-}" ] && [ -z "${configurePhase-}" ]; then + # shellcheck disable=SC2034 + setOutputFlags= + configurePhase=mesonConfigurePhase +fi diff --git a/pkgs/by-name/va/valijson/package.nix b/pkgs/by-name/va/valijson/package.nix new file mode 100644 index 0000000000000..777e192aee4a0 --- /dev/null +++ b/pkgs/by-name/va/valijson/package.nix @@ -0,0 +1,28 @@ +{ lib +, stdenv +, fetchFromGitHub +, cmake +}: + +stdenv.mkDerivation rec { + pname = "valijson"; + version = "1.0.1"; + + src = fetchFromGitHub { + owner = "tristanpenman"; + repo = "valijson"; + rev = "v${version}"; + hash = "sha256-COVFBZtuTd1nyI/25feUYCurBwPlQV3qbxSSkn6aLl4="; + }; + + nativeBuildInputs = [ + cmake + ]; + + meta = with lib; { + description = "Header-only C++ library for JSON Schema validation, with support for many popular parsers"; + homepage = "https://github.com/tristanpenman/valijson"; + license = licenses.bsd2; + platforms = platforms.all; + }; +} |