Merge branch 'master' into current

This commit is contained in:
2025-10-31 17:59:17 +01:00
7 changed files with 125 additions and 9 deletions

View File

@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = { mktplcRef = {
name = "claude-code"; name = "claude-code";
publisher = "anthropic"; publisher = "anthropic";
version = "2.0.29"; version = "2.0.30";
hash = "sha256-g5k2Lov2BBxDR2TCSiVVU8+6jo4ajp0IIYJnVmg/NMQ="; hash = "sha256-KQ+3yk5WmHIiu6evpPSWfzEbqVKFj2XY8wwGxcqGOJc=";
}; };
meta = { meta = {

View File

@@ -1,12 +1,12 @@
{ {
"name": "@anthropic-ai/claude-code", "name": "@anthropic-ai/claude-code",
"version": "2.0.29", "version": "2.0.30",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "@anthropic-ai/claude-code", "name": "@anthropic-ai/claude-code",
"version": "2.0.29", "version": "2.0.30",
"license": "SEE LICENSE IN README.md", "license": "SEE LICENSE IN README.md",
"bin": { "bin": {
"claude": "cli.js" "claude": "cli.js"

View File

@@ -7,14 +7,14 @@
}: }:
buildNpmPackage (finalAttrs: { buildNpmPackage (finalAttrs: {
pname = "claude-code"; pname = "claude-code";
version = "2.0.29"; version = "2.0.30";
src = fetchzip { src = fetchzip {
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz"; url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${finalAttrs.version}.tgz";
hash = "sha256-6YN0iSX05S+CqZ4NCDM1D+vGlLNV29NpPaVd31JN/u4="; hash = "sha256-8XpxFnS+d8xYvK21bsVyCz879Gl39i/wDWr6RtEGE3Q=";
}; };
npmDepsHash = "sha256-ULesV9VeFhJRBJdTexCp92wuUMj6abNQ2xE+ZtcpzqE="; npmDepsHash = "sha256-ZDRgLH3AhkcLBrzUys/ON2OBvBV7trPmlOJ2l6gQpV4=";
postPatch = '' postPatch = ''
cp ${./package-lock.json} package-lock.json cp ${./package-lock.json} package-lock.json

View File

@@ -0,0 +1,108 @@
From febb61a45a40a76bdbcd320f307dcd8f14cc532b Mon Sep 17 00:00:00 2001
From: Jonas Rembser <jonas.rembser@cern.ch>
Date: Thu, 28 Aug 2025 14:07:01 +0200
Subject: [PATCH] [CMake] Build `rootcint` and `genreflex` as separate targets
This makes the CMake code more robust.
Right now, we use some `install(CODE "execute_process(COMMAND ln -f ...`
solution on unix to install `rootcint` and `genreflex`. This does not
work in all cases, either because of the usage of `\$ENV{DESTDIR}` when
`DESTDIR` is not set, or because hard links are not allowed.
Always copying `rootcling` - already in the build tree - would avoid
that problem, but by copying we risk sidestepping the CMake mechanisms
to set the RPath correctly when installing the copies, which are not
actual targets.
To make makes things simpler and more robust, this commit suggests to
build the `rootcing` and `genreflex` executables as separate targets
from the same source. The cost is very little cost in memory
(`rootcling` is only 31K, so copying two times only increases the size
of ROOTs `bin` directory by 1.5 %) and little in compile time (the extra
compile time is less than a second, not noticable in parallel builds).
---
main/CMakeLists.txt | 69 +++++++++++++++------------------------------
1 file changed, 23 insertions(+), 46 deletions(-)
diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt
index 7dfcd98e345..857f0df48d8 100644
--- a/main/CMakeLists.txt
+++ b/main/CMakeLists.txt
@@ -98,50 +98,27 @@ set_source_files_properties(src/rootcling.cxx PROPERTIES
VISIBILITY_INLINES_HIDDEN "ON"
)
-ROOT_EXECUTABLE(rootcling src/rootcling.cxx LIBRARIES RIO Cling Core Rint)
-
-# rootcling includes the ROOT complex header which would build the complex
-# dictionary with modules. To make sure that rootcling_stage1 builds this
-# dict before we use it, we add a dependency here.
-add_dependencies(rootcling complexDict)
-
-target_include_directories(rootcling PRIVATE
- ${CMAKE_SOURCE_DIR}/core/metacling/res
- ${CMAKE_SOURCE_DIR}/core/dictgen/res
- ${CMAKE_SOURCE_DIR}/io/rootpcm/res)
-set_property(TARGET rootcling PROPERTY ENABLE_EXPORTS 1)
-if(WIN32)
- set_target_properties(rootcling PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS 1)
- set_property(TARGET rootcling APPEND_STRING PROPERTY LINK_FLAGS " -STACK:4000000")
-endif()
-
-# Create aliases: rootcint, genreflex.
-if(WIN32)
- add_custom_command(TARGET rootcling POST_BUILD
- COMMAND copy /y rootcling.exe rootcint.exe
- COMMAND copy /y rootcling.exe genreflex.exe
- WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
-else()
- add_custom_command(TARGET rootcling POST_BUILD
- COMMAND ln -f rootcling rootcint
- COMMAND ln -f rootcling genreflex
- WORKING_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
-endif()
-set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES
- "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/rootcint;${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/genreflex")
-
-if(CMAKE_HOST_UNIX)
- install(CODE "execute_process(COMMAND ln -f rootcling rootcint WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})" COMPONENT applications)
- install(CODE "execute_process(COMMAND ln -f rootcling genreflex WORKING_DIRECTORY \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR})" COMPONENT applications)
-else()
- if(MSVC)
- install(PROGRAMS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/rootcling.exe DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT applications)
- install(PROGRAMS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/rootcint.exe DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT applications)
- install(PROGRAMS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/genreflex.exe DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT applications)
- else()
- install(PROGRAMS ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/rootcint
- ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/genreflex
- ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/rlibmap
- DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT applications)
+set(rootcling_exe_names rootcling genreflex rootcint)
+
+foreach(exe_name IN LISTS rootcling_exe_names)
+ ROOT_EXECUTABLE(${exe_name} src/rootcling.cxx LIBRARIES RIO Cling Core Rint)
+
+ # rootcling includes the ROOT complex header which would build the complex
+ # dictionary with modules. To make sure that rootcling_stage1 builds this
+ # dict before we use it, we add a dependency here.
+ add_dependencies(${exe_name} complexDict)
+
+ target_include_directories(${exe_name} PRIVATE
+ ${CMAKE_SOURCE_DIR}/core/metacling/res
+ ${CMAKE_SOURCE_DIR}/core/dictgen/res
+ ${CMAKE_SOURCE_DIR}/io/rootpcm/res)
+ set_property(TARGET ${exe_name} PROPERTY ENABLE_EXPORTS 1)
+ if(WIN32)
+ set_target_properties(${exe_name} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS 1)
+ set_property(TARGET ${exe_name} APPEND_STRING PROPERTY LINK_FLAGS " -STACK:4000000")
endif()
-endif()
+endforeach()
+
+# To inherit the dependencies from rootcling
+add_dependencies(genreflex rootcling)
+add_dependencies(rootcint rootcint)
--
2.50.1

View File

@@ -135,6 +135,8 @@ stdenv.mkDerivation rec {
hash = "sha256-D7LZWJnGF9DtKcM8EF3KILU81cqTcZolW+HMe3fmXTw="; hash = "sha256-D7LZWJnGF9DtKcM8EF3KILU81cqTcZolW+HMe3fmXTw=";
revert = true; revert = true;
}) })
# Will also be integrated to ROOT 6.38.00
./Build-rootcint-and-genreflex-as-separate-targets.patch
]; ];
preConfigure = '' preConfigure = ''

View File

@@ -60,6 +60,12 @@ stdenv.mkDerivation {
] ]
++ lib.optional (stdenv.hostPlatform.libc == "glibc") libtirpc; ++ lib.optional (stdenv.hostPlatform.libc == "glibc") libtirpc;
preConfigure = ''
substituteInPlace "CMakeLists.txt" \
--replace-fail 'cmake_minimum_required(VERSION 2.8.12.2)' \
'cmake_minimum_required(VERSION 3.10)'
'';
env.NIX_CFLAGS_COMPILE = lib.optionalString ( env.NIX_CFLAGS_COMPILE = lib.optionalString (
stdenv.hostPlatform.libc == "glibc" stdenv.hostPlatform.libc == "glibc"
) "-I${libtirpc.dev}/include/tirpc"; ) "-I${libtirpc.dev}/include/tirpc";

View File

@@ -40,13 +40,13 @@
}: }:
let let
version = "38.4.0"; version = "38.5.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "rucio"; owner = "rucio";
repo = "rucio"; repo = "rucio";
tag = version; tag = version;
hash = "sha256-PGBVStSLyNHbW8vmx7enxsqaw7KRMzR2HPXun9GMPQY="; hash = "sha256-j+VFPS4obKdbbFPj3HZnpe5bzIMgOGaCeaKAiRuc0Gk=";
}; };
in in
buildPythonPackage { buildPythonPackage {