summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/emulators.scm154
-rw-r--r--gnu/packages/linux.scm236
-rw-r--r--gnu/packages/patches/zig-0.15-fix-runpath.patch122
-rw-r--r--gnu/packages/python-build.scm16
-rw-r--r--gnu/packages/python-xyz.scm7
-rw-r--r--gnu/packages/zig.scm182
7 files changed, 533 insertions, 185 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 1814c7da68..34bfbb0d28 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2509,6 +2509,7 @@ dist_patch_DATA = \
%D%/packages/patches/zig-0.14-fix-runpath.patch \
%D%/packages/patches/zig-0.14-use-baseline-cpu-by-default.patch \
%D%/packages/patches/zig-0.14-use-system-paths.patch \
+ %D%/packages/patches/zig-0.15-fix-runpath.patch \
%D%/packages/patches/zsh-egrep-failing-test.patch \
%D%/packages/patches/zuo-bin-sh.patch \
%D%/packages/patches/zxing-cpp-1.2.0-gcc-14.patch \
diff --git a/gnu/packages/emulators.scm b/gnu/packages/emulators.scm
index bb0bd898e1..f86fcedd56 100644
--- a/gnu/packages/emulators.scm
+++ b/gnu/packages/emulators.scm
@@ -4352,72 +4352,96 @@ on a Commodore C64, C128 etc.")
(license license:zlib)))
(define-public flycast
- (package
- (name "flycast")
- (version "2.4")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/flyinghead/flycast")
- (commit (string-append "v" version))
- ;; There are many bundled packages here included as git
- ;; submodules. Removing many of them would require patching the
- ;; source code and repository layout.
- (recursive? #t)))
- (file-name (git-file-name name version))
- (sha256
- (base32 "0ainy75gkrvilcm89hq6wq9md41w0mxgp6l27q5fzrxxykpjh6ym"))
- (modules '((guix build utils)))
- (snippet #~(begin
- (substitute* "CMakeLists.txt"
- (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
- "find_package(VulkanHeaders)"))
- (with-directory-excursion "core/deps"
- (for-each delete-file-recursively
- '("SDL"
- "Spout"
- "Syphon"
- "Vulkan-Headers"
- "breakpad"
- "discord-rpc"
- "libzip"
- "oboe")))))))
- (build-system cmake-build-system)
- (arguments
- (list
- #:tests? #f ; no test suite
- #:configure-flags
- #~(list "-DUSE_ALSA=ON"
- "-DUSE_BREAKPAD=OFF"
- "-DUSE_DX11=OFF"
- "-DUSE_DX9=OFF"
- ;; The USE_HOST_GLSLANG option is not implemented correctly.
- ;; (see: https://github.com/flyinghead/flycast/issues/1843)
- "-DUSE_HOST_GLSLANG=OFF"
- "-DUSE_HOST_LIBZIP=ON"
- "-DUSE_HOST_SDL=ON"
- "-DUSE_LIBAO=ON"
- "-DUSE_LUA=ON"
- "-DUSE_PULSEAUDIO=ON"
- "-DUSE_VULKAN=ON")))
- (inputs (list alsa-lib
- ao
- curl
- glslang
- libzip
- lua
- miniupnpc
- pulseaudio
- sdl2
- spirv-tools
- vulkan-headers
- pkg-config))
- (home-page "https://github.com/flyinghead/flycast")
- (synopsis "Sega Dreamcast, Naomi, Naomi 2, and Atomiswave emulator")
- (description "Flycast is a multi-platform Sega Dreamcast, Naomi, Naomi 2,
+ ;; Use a git snapshot as the latest 2.5 release is still on an older glslang
+ ;; version that doesn't build with GCC 14.
+ (let ((commit "33833cfd1ed2d94d907223442fdb8cdafd8d5d80")
+ (revision "0"))
+ (package
+ (name "flycast")
+ (version (git-version "2.5" revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/flyinghead/flycast")
+ (commit commit)
+ ;; There are many bundled packages here included as git
+ ;; submodules, but removing many of them would require patching
+ ;; the source code and repository layout (see: <>).
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "16vwhw33zhq2b8mpg863cn7sz4f04wxjz2650jgqjv7i5lkdd1g9"))
+ (modules '((guix build utils)))
+ (snippet #~(begin
+ ;; TODO: Uncomment after our vulkan-headers
+ ;; are update to 1.3.261.0 or newer.
+ ;; (substitute* "CMakeLists.txt"
+ ;; (("add_subdirectory\\(core/deps/Vulkan-Headers\\)")
+ ;; "find_package(VulkanHeaders)"))
+ (with-directory-excursion "core/deps"
+ (for-each
+ delete-file-recursively
+ '("SDL"
+ "Spout"
+ "Syphon"
+ ;; TODO: Uncomment after our vulkan-headers
+ ;; are update to 1.3.261.0 or newer.
+ ;;"Vulkan-Headers"
+ "breakpad"
+ "discord-rpc"
+ ;; XXX: The libretro build requires the bundled
+ ;; libzip, which it uses to produce a
+ ;; static library.
+ ;;"libzip"
+ "oboe")))))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;no test suite
+ #:configure-flags
+ #~(list "-DUSE_ALSA=ON"
+ "-DUSE_BREAKPAD=OFF"
+ "-DUSE_DX11=OFF"
+ "-DUSE_DX9=OFF"
+ ;; The USE_HOST_GLSLANG option is not implemented correctly.
+ ;; (see: https://github.com/flyinghead/flycast/issues/1843)
+ "-DUSE_HOST_GLSLANG=OFF"
+ "-DUSE_HOST_LIBZIP=ON"
+ "-DUSE_HOST_SDL=ON"
+ "-DUSE_LIBAO=ON"
+ "-DUSE_LIBCDIO=ON"
+ "-DUSE_LUA=ON"
+ "-DUSE_PULSEAUDIO=ON"
+ "-DUSE_VULKAN=ON")))
+ (native-inputs (list pkg-config))
+ (inputs (list alsa-lib
+ ao
+ curl
+ glslang
+ libcdio
+ libzip
+ lua
+ miniupnpc
+ pulseaudio
+ sdl2
+ spirv-tools
+ ;; TODO: Uncomment after vulkan-headers
+ ;; is updated to 1.3.261.0 or newer.
+ ;;vulkan-headers
+ ))
+ (home-page "https://github.com/flyinghead/flycast")
+ (synopsis "Sega Dreamcast, Naomi, Naomi 2, and Atomiswave emulator")
+ (description "Flycast is a multi-platform Sega Dreamcast, Naomi, Naomi 2,
and Atomiswave emulator derived from reicast.")
- (license license:gpl2+)))
+ (license license:gpl2+))))
+
+(define-public libretro-flycast
+ (package/inherit flycast
+ (name "libretro-flycast")
+ (arguments (substitute-keyword-arguments (package-arguments flycast)
+ ((#:configure-flags flags)
+ #~(cons "-DLIBRETRO=ON" #$flags))))))
(define-public freedisksysrom
;; There is no release; use the latest commit.
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 36cef84b14..ed8789be0e 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -34,7 +34,7 @@
;;; Copyright © 2018 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2019 Tim Gesthuizen <tim.gesthuizen@yahoo.de>
;;; Copyright © 2019 mikadoZero <mikadozero@yandex.com>
-;;; Copyright © 2019-2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2019-2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2019 Stefan Stefanović <stefanx2ovic@gmail.com>
;;; Copyright © 2019-2022 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2019 Kei Kebreau <kkebreau@posteo.net>
@@ -8103,124 +8103,128 @@ not as a replacement for it.")
license:gpl3+)))) ; everything else
(define-public hotspot
- (package
- (name "hotspot")
- (version "1.5.1")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/KDAB/hotspot")
- (commit (string-append "v" version))
- ;; Include the bundled perfparser and PrefixTickLabels
- ;; libraries, which are to be used in source form.
- (recursive? #t)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "04k2rvf2lgi8hp7dzqzn65fcd2lsiylwr04d44q75j0wvgbjjv1v"))))
- (build-system qt-build-system)
- (arguments
- (list
- ;; As mentioned in the option help text, the KAuth helper cannot be
- ;; installed to a custom prefix and the build fails with "file cannot
- ;; create directory: /polkit-1/actions. Maybe need administrative"
- ;; (see: https://bugs.kde.org/show_bug.cgi?id=363678).
- #:configure-flags #~(list "-DINSTALL_KAUTH_HELPER=OFF"
- "-DQT6_BUILD=ON")
- #:qtbase qtbase
- ;; The 'tst_models' and 'tst_callgraphgenerator' fail, with
- ;; the later seemingly requiring sudo or access to the kernel
- ;; trace points.
- #:test-exclude
- (string-append
- "("
- (string-join
- ;; The 'tst_models' expected output doesn't exactly
- ;; match.
- '("tst_models"
- ;; The 'tst_callgraphgenerator' perf invocation
- ;; fails when run in the build container.
- "tst_callgraphgenerator"
- ;; The 'tst_perfparser' test requires sudo/access
- ;; to the kernel scheduler trace points.
- "tst_perfparser")
- "|")
- ")")
- #:phases
- #~(modify-phases %standard-phases
- (add-after 'unpack 'patch-perfparser
- ;; XXX: This phase is copied from qt-creator: keep them in sync!
- (lambda* (#:key inputs #:allow-other-keys)
- ;; perfparser attempts to dynamically load the demangle
- ;; libraries; use their absolute file name to avoid having to
- ;; set LD_LIBRARY_PATH.
- (let ((librustc_demangle.so
- (with-exception-handler (lambda (ex)
- (if (search-error? ex)
- #f
- (raise-exception ex)))
- (lambda ()
- (search-input-file inputs "lib/librustc_demangle.so"))
- #:unwind? #t)))
- (substitute* "3rdparty/perfparser/app/demangler.cpp"
- (("loadDemangleLib\\(QStringLiteral\\(\"rustc_demangle\")"
- all)
- (if librustc_demangle.so
- (format #f "loadDemangleLib(QStringLiteral(~s)"
- librustc_demangle.so)
- all)) ;no rustc_demangle; leave unchanged
- (("loadDemangleLib\\(QStringLiteral\\(\"d_demangle\")")
- (format #f "loadDemangleLib(QStringLiteral(~s)"
- (search-input-file inputs
- "lib/libd_demangle.so")))))))
- (add-after 'unpack 'path-paths
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "src/perfoutputwidgetkonsole.cpp"
- (("\"tail\"")
- (format #f "~s" (search-input-file inputs "bin/tail"))))
- (substitute* "src/perfrecord.cpp"
- (("\"perf( )?\"" _ space)
- (string-append "\"" (search-input-file inputs "bin/perf")
- (or space "") "\""))))))))
- (native-inputs
- (list extra-cmake-modules
- vulkan-headers))
- (inputs
- (append
- (list coreutils-minimal
- d-demangler
- elfutils
- karchive
- kconfig
- kcoreaddons
- kddockwidgets
- kgraphviewer
- ki18n
- kio
- kiconthemes
- kitemmodels
- kitemviews
- knotifications
- kparts
- ksyntaxhighlighting
- kwindowsystem
- libxkbcommon
- perf
- qtdeclarative
- qtsvg
- solid
- threadweaver
- `(,zstd "lib"))
- (if (supported-package? rust-rustc-demangle-capi-0.1)
- (list rust-rustc-demangle-capi-0.1)
- '())))
- (home-page "https://github.com/KDAB/hotspot")
- (synopsis "Performance analysis GUI for Linux perf")
- (description "Hotspot is a standalone GUI for performance data analysis.
+ ;; Use the latest git commit as it includes unreleased fixes for the test
+ ;; suite.
+ (let ((commit "5cec69301a3f34ada86ce9fe01a9538b04b3cf7c")
+ (revision "0"))
+ (package
+ (name "hotspot")
+ (version (git-version "1.5.1" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/KDAB/hotspot")
+ (commit commit)
+ ;; Include the bundled perfparser and PrefixTickLabels
+ ;; libraries, which are to be used in source form.
+ (recursive? #t)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "115gskjdcb1q3mgrnv1qcdrhxabjzl1hhkpk1klk67ayicsk1ym6"))))
+ (build-system qt-build-system)
+ (arguments
+ (list
+ ;; As mentioned in the option help text, the KAuth helper cannot be
+ ;; installed to a custom prefix and the build fails with "file cannot
+ ;; create directory: /polkit-1/actions. Maybe need administrative"
+ ;; (see: https://bugs.kde.org/show_bug.cgi?id=363678).
+ #:configure-flags #~(list "-DINSTALL_KAUTH_HELPER=OFF"
+ "-DQT6_BUILD=ON")
+ #:qtbase qtbase
+ ;; The 'tst_models' and 'tst_callgraphgenerator' fail, with
+ ;; the later seemingly requiring sudo or access to the kernel
+ ;; trace points.
+ #:test-exclude
+ (string-append
+ "("
+ (string-join
+ ;; The 'tst_models' expected output doesn't exactly
+ ;; match.
+ '("tst_models"
+ ;; The 'tst_callgraphgenerator' perf invocation
+ ;; fails when run in the build container.
+ "tst_callgraphgenerator"
+ ;; The 'tst_perfparser' test requires sudo/access
+ ;; to the kernel scheduler trace points.
+ "tst_perfparser")
+ "|")
+ ")")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-perfparser
+ ;; XXX: This phase is copied from qt-creator: keep them in sync!
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; perfparser attempts to dynamically load the demangle
+ ;; libraries; use their absolute file name to avoid having to
+ ;; set LD_LIBRARY_PATH.
+ (let ((librustc_demangle.so
+ (with-exception-handler (lambda (ex)
+ (if (search-error? ex)
+ #f
+ (raise-exception ex)))
+ (lambda ()
+ (search-input-file inputs "lib/librustc_demangle.so"))
+ #:unwind? #t)))
+ (substitute* "3rdparty/perfparser/app/demangler.cpp"
+ (("loadDemangleLib\\(QStringLiteral\\(\"rustc_demangle\")"
+ all)
+ (if librustc_demangle.so
+ (format #f "loadDemangleLib(QStringLiteral(~s)"
+ librustc_demangle.so)
+ all)) ;no rustc_demangle; leave unchanged
+ (("loadDemangleLib\\(QStringLiteral\\(\"d_demangle\")")
+ (format #f "loadDemangleLib(QStringLiteral(~s)"
+ (search-input-file inputs
+ "lib/libd_demangle.so")))))))
+ (add-after 'unpack 'path-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/perfoutputwidgetkonsole.cpp"
+ (("\"tail\"")
+ (format #f "~s" (search-input-file inputs "bin/tail"))))
+ (substitute* "src/perfrecord.cpp"
+ (("\"perf( )?\"" _ space)
+ (string-append "\"" (search-input-file inputs "bin/perf")
+ (or space "") "\""))))))))
+ (native-inputs
+ (list extra-cmake-modules
+ vulkan-headers))
+ (inputs
+ (append
+ (list coreutils-minimal
+ d-demangler
+ elfutils
+ karchive
+ kconfig
+ kcoreaddons
+ kddockwidgets
+ kgraphviewer
+ ki18n
+ kio
+ kiconthemes
+ kitemmodels
+ kitemviews
+ knotifications
+ kparts
+ ksyntaxhighlighting
+ kwindowsystem
+ libxkbcommon
+ perf
+ qtdeclarative
+ qtsvg
+ solid
+ threadweaver
+ `(,zstd "lib"))
+ (if (supported-package? rust-rustc-demangle-capi-0.1)
+ (list rust-rustc-demangle-capi-0.1)
+ '())))
+ (home-page "https://github.com/KDAB/hotspot")
+ (synopsis "Performance analysis GUI for Linux perf")
+ (description "Hotspot is a standalone GUI for performance data analysis.
It aims to be similar to KCachegrind, but for data collected with
@command{perf}, a profiler for use with the kernel Linux. Its main feature is
graphically visualizing a @file{perf.data} file.")
- (license (list license:gpl2+ license:gpl3+)))) ;dual licensed
+ (license (list license:gpl2+ license:gpl3+))))) ;dual licensed
(define-public ecryptfs-utils
(package
diff --git a/gnu/packages/patches/zig-0.15-fix-runpath.patch b/gnu/packages/patches/zig-0.15-fix-runpath.patch
new file mode 100644
index 0000000000..7216c97b57
--- /dev/null
+++ b/gnu/packages/patches/zig-0.15-fix-runpath.patch
@@ -0,0 +1,122 @@
+From d35c341322f6e84607350058007bd5be3d1d294a Mon Sep 17 00:00:00 2001
+From: Hilton Chain <hako@ultrarare.space>
+Date: Fri, 29 Nov 2024 14:13:46 +0800
+Subject: [PATCH] Fix RUNPATH issue.
+
+Add needed libraries and libc to RUNPATH when CROSS_LIBRARY_PATH or LIBRARY_PATH
+is set.
+---
+ lib/std/Build/Step/Compile.zig | 2 ++
+ src/link/Elf.zig | 7 +++++++
+ src/link/Lld.zig | 7 +++++++
+ src/main.zig | 34 +++++++++++++++++++++++++++++++++-
+ 4 files changed, 49 insertions(+), 1 deletion(-)
+
+diff --git a/lib/std/Build/Step/Compile.zig b/lib/std/Build/Step/Compile.zig
+index 79d3694c02..7f6bddbea6 100644
+--- a/lib/std/Build/Step/Compile.zig
++++ b/lib/std/Build/Step/Compile.zig
+@@ -794,6 +794,8 @@ fn runPkgConfig(compile: *Compile, lib_name: []const u8) !PkgConfigResult {
+ try zig_cflags.append(arg);
+ } else if (mem.startsWith(u8, arg, wl_rpath_prefix)) {
+ try zig_cflags.appendSlice(&[_][]const u8{ "-rpath", arg[wl_rpath_prefix.len..] });
++ } else if (mem.startsWith(u8, arg, "-Wl,-rpath=")) {
++ try zig_libs.appendSlice(&[_][]const u8{ "-L", arg["-Wl,-rpath=".len..] });
+ } else if (b.debug_pkg_config) {
+ return compile.step.fail("unknown pkg-config flag '{s}'", .{arg});
+ }
+diff --git a/src/link/Elf.zig b/src/link/Elf.zig
+index 99d0ad71b0..8017f4c088 100644
+--- a/src/link/Elf.zig
++++ b/src/link/Elf.zig
+@@ -988,6 +988,13 @@ fn dumpArgvInit(self: *Elf, arena: Allocator) !void {
+ try argv.appendSlice(gpa, &.{ "-rpath", rpath });
+ }
+
++ if (std.zig.system.NativePaths.isGuix(arena) and comp.config.link_libc and comp.config.link_mode == .dynamic) {
++ if (self.base.comp.libc_installation) |libc_installation| {
++ try argv.append(gpa, "-rpath");
++ try argv.append(gpa, libc_installation.crt_dir.?);
++ }
++ }
++
+ try argv.appendSlice(gpa, &.{
+ "-z",
+ try std.fmt.allocPrint(arena, "stack-size={d}", .{self.base.stack_size}),
+diff --git a/src/link/Lld.zig b/src/link/Lld.zig
+index 48872f7077..814f661692 100644
+--- a/src/link/Lld.zig
++++ b/src/link/Lld.zig
+@@ -1071,6 +1071,13 @@ fn elfLink(lld: *Lld, arena: Allocator) !void {
+ }
+ }
+
++ if (std.zig.system.NativePaths.isGuix(arena) and comp.config.link_libc and link_mode == .dynamic) {
++ if (comp.libc_installation) |libc_installation| {
++ try argv.append("-rpath");
++ try argv.append(libc_installation.crt_dir.?);
++ }
++ }
++
+ if (have_dynamic_linker and
+ (comp.config.link_libc or comp.root_mod.resolved_target.is_explicit_dynamic_linker))
+ {
+diff --git a/src/main.zig b/src/main.zig
+index 02b1b8f84b..ddc4ae8014 100644
+--- a/src/main.zig
++++ b/src/main.zig
+@@ -3910,7 +3910,7 @@ fn createModule(
+ create_module.want_native_include_dirs = true;
+ }
+
+- if (create_module.each_lib_rpath orelse resolved_target.is_native_os) {
++ if (create_module.each_lib_rpath orelse false) {
+ try create_module.rpath_list.ensureUnusedCapacity(arena, create_module.lib_directories.items.len);
+ for (create_module.lib_directories.items) |lib_directory| {
+ create_module.rpath_list.appendAssumeCapacity(lib_directory.path.?);
+@@ -3982,6 +3982,28 @@ fn createModule(
+ else => {},
+ };
+
++ if (std.zig.system.NativePaths.isGuix(arena)) {
++ for (create_module.link_inputs.items) |link_input| {
++ if (link_input.path()) |lib| {
++ const lib_name = lib.sub_path;
++ if (Compilation.classifyFileExt(lib_name) == .shared_library) {
++ if (fs.path.isAbsolute(lib_name)) {
++ const lib_dir_path = fs.path.dirname(lib_name).?;
++ try create_module.rpath_list.append(arena, lib_dir_path);
++ continue;
++ }
++ for (create_module.lib_directories.items) |lib_dir| {
++ const lib_dir_path = lib_dir.path.?;
++ if (try libPathExists(arena, lib_dir_path, lib_name)) {
++ try create_module.rpath_list.append(arena, lib_dir_path);
++ break;
++ }
++ }
++ }
++ }
++ }
++ }
++
+ create_module.resolved_options = Compilation.Config.resolve(create_module.opts) catch |err| switch (err) {
+ error.WasiExecModelRequiresWasi => fatal("only WASI OS targets support execution model", .{}),
+ error.SharedMemoryIsWasmOnly => fatal("only WebAssembly CPU targets support shared memory", .{}),
+@@ -7633,3 +7655,13 @@ fn addLibDirectoryWarn2(
+ .path = path,
+ });
+ }
++
++fn libPathExists(arena: Allocator, lib_dir_path: []const u8, lib_name: []const u8) !bool {
++ const lib_path = try std.fmt.allocPrint(arena, "{s}{s}{s}", .{
++ lib_dir_path,
++ fs.path.sep_str,
++ lib_name,
++ });
++ fs.cwd().access(lib_path, .{}) catch return false;
++ return true;
++}
+--
+2.50.1
+
diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm
index b5ad5e7519..d3b31b05c7 100644
--- a/gnu/packages/python-build.scm
+++ b/gnu/packages/python-build.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2020, 2023 Marius Bakke <marius@gnu.org>
;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org>
-;;; Copyright © 2018, 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2018, 2021-2023, 2025 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2019 Vagrant Cascadian <vagrant@debian.org>
;;; Copyright © 2021 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020, 2021, 2022, 2023 Ricardo Wurmus <rekado@elephly.net>
@@ -252,6 +252,20 @@ Included are implementations of:
@end enumerate\n")
(license license:psfl)))
+(define-public python-typing-extensions-next
+ (package
+ (inherit python-typing-extensions)
+ (version "4.15.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "typing_extensions" version))
+ (sha256
+ (base32 "0rhlhs28jndgp9fghdhidn6g7xiwx8vvihxbxhlgl4ncfg8lishc"))))
+ (native-inputs
+ (modify-inputs (package-native-inputs python-typing-extensions)
+ (replace "python-flit-core" python-flit-core-next)))))
+
;;;
;;; Python builder packages.
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 96cbe0b958..bedcd86954 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -6787,7 +6787,7 @@ palettes.")
(propagated-inputs
;; Youtube-dl is a python package which is imported in the file
;; "backend_youtube_dl.py", therefore it needs to be propagated.
- (list youtube-dl))
+ (list yt-dlp))
(home-page "https://np1.github.io/pafy/")
(synopsis "Retrieve YouTube content and metadata")
(description
@@ -8960,7 +8960,7 @@ ecosystem, but can naturally be used also by other projects.")
(define-public python-robotframework
(package
(name "python-robotframework")
- (version "7.2.2")
+ (version "7.3.2")
(source
(origin
(method git-fetch) ; no tests in the PyPI archive
@@ -8969,7 +8969,7 @@ ecosystem, but can naturally be used also by other projects.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1a34dv5gpaiqbddblfnirp1ja2a1069n9nifasn4g26kcj69fpra"))))
+ (base32 "0azis3dj7lfiwrr5gr1gr78z5m05vvl8n20rw3bz93s05z94h5i7"))))
(outputs '("out" "doc"))
(build-system pyproject-build-system)
(arguments
@@ -9009,6 +9009,7 @@ ecosystem, but can naturally be used also by other projects.")
python-jsonschema
python-pygments
python-rellu
+ python-typing-extensions-next
python-setuptools
`(,python "tk") ;used when building the HTML doc
python-wheel))
diff --git a/gnu/packages/zig.scm b/gnu/packages/zig.scm
index 6b3f66095c..82484d652d 100644
--- a/gnu/packages/zig.scm
+++ b/gnu/packages/zig.scm
@@ -1890,4 +1890,186 @@ toolchain. Among other features it provides
(properties `((max-silent-time . 9600)
,@(clang-compiler-cpu-architectures "19")))))
+
+;;;
+;;; Bootstrap path for Zig 0.15.
+;;;
+
+(define zig-0.14.0-687
+ (let ((commit "cc047fdd959edb260f7a6e305ccad53f185ece66")
+ (revision "687")
+ (base zig-0.14))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "0wjswx1cvql8pxpdrglr3h24v5rffnq3llr0f08hj8g959f6ffvs"))
+ ;; zig2
+ (arguments (package-arguments zig-0.10.0-851))
+ (inputs
+ (modify-inputs (package-inputs base)
+ (replace "clang" clang-20)
+ (replace "lld" lld-20)))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "llvm" llvm-20)
+ (replace "zig" `(,base "zig1"))))
+ (properties `((max-silent-time . 9600)
+ ,@(clang-compiler-cpu-architectures "20"))))))
+
+(define zig-0.14.0-877
+ (let ((commit "0adcfd60f4fcfd01c74a6477cbcef187ce06f533")
+ (revision "877")
+ (base zig-0.14.0-687))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "1yyar3cms02kzf4z20sbw09awqvz0kbm9fx8g0kgb8hp1f4blf3d"))
+ ;; zig1
+ (arguments (package-arguments zig-0.10.0-747))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "zig" `(,base "out")))))))
+
+(define zig-0.14.0-930
+ (let ((commit "40d11cc25a469dc6bb0f9fbba4d05e7210a23b3f")
+ (revision "930")
+ (base zig-0.14.0-877))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "06x6zi8hcl04gmql96vyms0zch94xi1all5s1kjsnbifixd99bgy"))
+ ;; zig2
+ (arguments (package-arguments zig-0.10.0-851))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "zig" `(,base "zig1")))))))
+
+(define zig-0.14.0-934
+ (let ((commit "4ba0e7d424a7c0af55c8085c659e9205560d3095")
+ (revision "934")
+ (base zig-0.14.0-930))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "17zaw7bk6wli6wpsr5zlpn1b39818h034l5bpnsxfslqqg09rsd8"))
+ ;; zig1
+ (arguments (package-arguments zig-0.10.0-747))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "zig" `(,base "out")))))))
+
+(define zig-0.14.0-1091
+ (let ((commit "87ce83d5a5854b63b7cef5c6209742ee1a524107")
+ (revision "1091")
+ (base zig-0.14.0-934))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "18irwcr63l1hf2g7vv9qajgllsp7qwzsv5ijm9x8l51agm6harf4"))
+ ;; zig2
+ (arguments (package-arguments zig-0.10.0-851))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "zig" `(,base "zig1")))))))
+
+(define zig-0.14.0-1197
+ (let ((commit "a023b9b22b6593ebd5a86736a4a9955840d1bfa1")
+ (revision "1197")
+ (base zig-0.14.0-1091))
+ (package
+ (inherit base)
+ (name "zig")
+ (version (git-version "0.14.0" revision commit))
+ (source (zig-source
+ version commit
+ "08c1m6kwq7cqg5s6j0ypp8ygvxj21da5is0w7y17sw27fjqrlhgr"))
+ ;; zig1
+ (arguments (package-arguments zig-0.10.0-747))
+ (native-inputs
+ (modify-inputs (package-native-inputs base)
+ (replace "zig" `(,base "out")))))))
+
+(define zig-0.15-libc-abi-tools
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ziglang/libc-abi-tools")
+ (commit "21993a6036cc165485b20229589340dff9d4fc3c")))
+ (file-name "libc-abi-tools")
+ (sha256
+ (base32 "0miwb0zfgfmm4bh2bs7982wpk0wp5vj2mz10x9c3m8fw7zzcyvbh"))
+ (modules '((guix build utils)))
+ (snippet
+ #~(substitute* "netbsd/consolidate.zig"
+ ((".write_buffer = buffer") ".write_buffer = &buffer")))))
+
+(define-public zig-0.15
+ (package
+ (inherit zig-0.14)
+ (name "zig")
+ (version "0.15.1")
+ (source
+ (origin
+ (inherit (zig-source
+ version version
+ "1cp18plf0x5wip4rnxiqavaqnqxnqzhipb34in6zd3y7wihwjmj4"))
+ (patches
+ (search-patches
+ "zig-0.14-use-baseline-cpu-by-default.patch"
+ "zig-0.14-use-system-paths.patch"
+ "zig-0.15-fix-runpath.patch"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments zig-0.14)
+ ((#:phases phases '%standard-phases)
+ #~(modify-phases #$phases
+ (delete 'install-glibc-abilists)
+ ;; TODO: Remove newly-added abilists files in zig-source.
+ (add-before 'check 'install-abilists
+ (lambda* (#:key inputs native-inputs #:allow-other-keys)
+ (mkdir-p "/tmp/libc-abi-tools")
+ (with-directory-excursion "/tmp/libc-abi-tools"
+ (copy-recursively
+ (dirname (search-input-file
+ (or native-inputs inputs) "list.zig"))
+ ".")
+ (for-each make-file-writable (find-files "."))
+ (for-each
+ (lambda (libc)
+ (with-directory-excursion libc
+ (invoke (string-append #$output "/bin/zig")
+ "run" "consolidate.zig")
+ (install-file
+ "abilists"
+ (string-append #$output "/lib/zig/libc/" libc))))
+ '("freebsd"
+ "glibc"
+ "netbsd")))))))))
+ (inputs
+ (modify-inputs (package-inputs zig-0.14)
+ (replace "clang" clang-20)
+ (replace "lld" lld-20)))
+ (native-inputs
+ (modify-inputs (package-native-inputs zig-0.14)
+ (delete "glibc-abi-tool")
+ (prepend zig-0.15-libc-abi-tools)
+ (replace "llvm" llvm-20)
+ (replace "zig" `(,zig-0.14.0-1197 "zig1"))))
+ (properties `((max-silent-time . 9600)
+ ,@(clang-compiler-cpu-architectures "20")))))
+
(define-public zig zig-0.13)