summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.guix-channel6
-rw-r--r--amd/packages/aocl-libs.scm192
-rw-r--r--amd/packages/logging.scm44
-rw-r--r--amd/packages/patches/hip-headers-5.6.1.patch15
-rw-r--r--amd/packages/patches/hipamd-5.6.1.patch16
-rw-r--r--amd/packages/patches/hipblas-6.2.0.patch21
-rw-r--r--amd/packages/patches/hipcc-5.6.1.patch35
-rw-r--r--amd/packages/patches/hipify-6.2.0.patch13
-rw-r--r--amd/packages/patches/llvm-rocm-5.7.1.patch126
-rw-r--r--amd/packages/patches/llvm-rocm-6.1.1.patch156
-rw-r--r--amd/packages/patches/llvm-rocm-6.2.0.patch77
-rw-r--r--amd/packages/patches/perfetto-meson.patch22
-rw-r--r--amd/packages/patches/rocblas-6.2.0.patch28
-rw-r--r--amd/packages/patches/rochpl-6.0.0-cmake.patch61
-rw-r--r--amd/packages/patches/rocm-bandwidth-test-reorg.patch48
-rw-r--r--amd/packages/patches/rocprof-register-6.2.0.patch26
-rw-r--r--amd/packages/patches/rocr-runtime-5.5.patch16
-rw-r--r--amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch19
-rw-r--r--amd/packages/rocm-apps.scm251
-rw-r--r--amd/packages/rocm-base.scm429
-rw-r--r--amd/packages/rocm-hip.scm246
-rw-r--r--amd/packages/rocm-libs.scm685
-rw-r--r--amd/packages/rocm-origin.scm447
-rw-r--r--amd/packages/rocm-tools.scm131
-rw-r--r--aux-files/matrix-purple/fix-g_memdup.patch25
-rw-r--r--aux-files/openbox/openbox-add-fix-for-glib2-exposed-segfault.patch50
-rw-r--r--aux-files/openbox/openbox-python3.patch165
-rw-r--r--aux-files/python-bugwarrior/gitea-support.patch149
-rw-r--r--aux-files/stable-diffusion-cpp/vulkan-support.patch123
-rw-r--r--backport.scm410
-rw-r--r--bugwarrior.scm67
-rw-r--r--machinelearning.scm679
-rw-r--r--messaging.scm322
-rw-r--r--prismlauncher-gpu.scm83
-rw-r--r--python-xyz.scm146
-rw-r--r--ruby-xyz.scm530
-rw-r--r--sherlock.scm24
-rw-r--r--unlustig.scm2428
-rw-r--r--vesktop.scm4
39 files changed, 6825 insertions, 1490 deletions
diff --git a/.guix-channel b/.guix-channel
index 30922df..9e4456c 100644
--- a/.guix-channel
+++ b/.guix-channel
@@ -8,4 +8,8 @@
(channel-introduction
(version 0)
(commit "897c1a470da759236cc11798f4e0a5f7d4d59fbc")
- (signer "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))))
+ (signer "2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5"))))
+ (channel
+ (name guix-hpc)
+ (url "https://gitlab.inria.fr/guix-hpc/guix-hpc")
+ )))
diff --git a/amd/packages/aocl-libs.scm b/amd/packages/aocl-libs.scm
new file mode 100644
index 0000000..02c9ec4
--- /dev/null
+++ b/amd/packages/aocl-libs.scm
@@ -0,0 +1,192 @@
+;;; Copyright © 2024 Advanced Micro Devices, Inc.
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (amd packages aocl-libs)
+ #:use-module (guix packages)
+ #:use-module (guix git-download)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix gexp)
+ #:use-module (guix licenses)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages mpi)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages perl))
+
+(define-public aocl-blis-mt
+ (package
+ (name "aocl-blis-mt")
+ (version "4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/amd/blis.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1bphmkwdgan7936v329bg56byia92rq35znamagmpy9z32w7ixyn"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "./configure"
+ (string-append "--prefix="
+ (assoc-ref outputs "out"))
+ "-d opt"
+ "--enable-cblas"
+ "--enable-threading=openmp"
+ "zen3"))))))
+ (native-inputs (list python-wrapper perl))
+ (synopsis "Basic Linear Algebra Subprograms (BLAS) Libraries")
+ (description
+ "BLIS is a portable software framework for instantiating high-performance
+BLAS-like dense linear algebra libraries. The framework was designed to isolate essential kernels
+of computation that enable optimized implementations of most of its commonly used and computationally
+intensive operations. The optimizations are done for single and double precision routines.
+AMD has extensively optimized the implementation of BLIS for AMD processors.")
+ (home-page "https://developer.amd.com/amd-aocl/blas-library")
+ (license bsd-3)))
+
+(define-public aocl-blis
+ (package
+ (inherit aocl-blis-mt)
+ (name "aocl-blis")
+ (arguments
+ `(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "./configure"
+ (string-append "--prefix="
+ (assoc-ref outputs "out"))
+ "-d opt" "--enable-cblas" "zen3"))))))
+ (synopsis
+ "Basic Linear Algebra Subprograms (BLAS) Libraries (without multi-threading support for zen3 cpus)")))
+
+(define-public aocl-blis-zen4
+ (package/inherit aocl-blis-mt
+ (name "aocl-blis-zen4")
+ (arguments
+ `(#:tests? #f
+ #:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "./configure"
+ (string-append "--prefix="
+ (assoc-ref outputs "out"))
+ "-d opt" "--enable-cblas" "zen4"))))))
+ (synopsis
+ "Basic Linear Algebra Subprograms (BLAS) Libraries (without multi-threading support for zen4 cpus)")))
+
+(define-public aocl-utils
+ (package
+ (name "aocl-utils")
+ (version "4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/amd/aocl-utils.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0k8fc3l5as2ga6b32d9zc0wqx8n11s7rvdi8qhsip1vbpkg8lpsm"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f)) ;No tests
+ (synopsis "AOCL libraries to access CPU features, especially AMD CPUs")
+ (description
+ "AOCL-Utils is designed to be integrated into other AOCL libraries. Each
+project has their own mechanism to identify CPU and provide necessary features such as
+'dynamic dispatch'. The main purpose of this library is to provide a centralized mechanism to
+update/validate and provide information to the users of this library.")
+ (home-page "https://developer.amd.com/amd-aocl")
+ (license bsd-3)))
+
+(define-public aocl-lapack
+ (package
+ (name "aocl-lapack")
+ (version "4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/amd/libflame.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "12n2f1xc817f8bnmvijd0as1iggmjiz73vmyppszk7l0hgb3b6a9"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests
+ #:configure-flags #~(list "--enable-amd-flags")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-config
+ (lambda _
+ (substitute* "build/config.mk.in"
+ (("/usr/bin/env bash")
+ (which "bash")))
+ (substitute* "src/aocl_dtl/Makefile"
+ ((".PHONY")
+ "CC=gcc\n.PHONY")))))))
+ (inputs (list aocl-utils))
+ (native-inputs (list gfortran python-wrapper perl))
+ (synopsis "Linear Algebra Package (LAPACK) Libraries")
+ (description
+ "AOCL-libFLAME is a portable library for dense matrix computations, providing the complete functionality present in Linear Algebra Package (LAPACK). The library provides scientific and numerical computing communities with a modern, high-performance dense linear algebra library that is extensible, easy to use, and available under an open source license. It is a C-only implementation. Applications relying on stadard Netlib LAPACK interfaces can start taking advantage of AOCL-libFLAME with virtually no changes to their source code.")
+ (home-page "https://developer.amd.com/amd-aocl/blas-library")
+ (license bsd-3)))
+
+(define-public aocl-scalapack
+ (package
+ (name "aocl-scalapack")
+ (version "4.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/amd/aocl-scalapack.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0cz627x920ximydcs9qz6jilzia735hyg2flcd1lliq2xwvk1zd5"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ ;; One tests fails due to an illegal value being passed to DSTEGR2A.
+ ;; Disabling for now.
+ #:tests? #f
+ #:configure-flags #~(list "-DBUILD_SHARED_LIBS:BOOL=YES"
+ "-DUSE_OPTIMIZED_LAPACK_BLAS=ON"
+ (string-append "-DLAPACK_LIBRARIES=-lstdc++ "
+ #$aocl-utils
+ "/lib/libaoclutils.a "
+ #$aocl-lapack "/lib/libflame.a")
+ (string-append "-DBLAS_LIBRARIES=-fopenmp "
+ #$aocl-blis "/lib/libblis.a"))))
+ (native-inputs (list gfortran python-wrapper))
+ (inputs (list openmpi aocl-lapack aocl-utils aocl-blis))
+ (synopsis "Scalable Linear Algebra Package (ScaLAPACK) Library")
+ (description
+ "AOCL-ScaLAPACK is a library of high-performance linear algebra routines for parallel distributed memory machines. It depends on external libraries including BLAS and LAPACK for Linear Algebra computations. AMD’s optimized version of ScaLAPACK (AOCL-ScaLAPACK) enables using the BLIS and libFLAME libraries with optimized dense-matrix functions and solvers for AMD processors")
+ (home-page "https://developer.amd.com/amd-aocl/scalapack")
+ (license bsd-3)))
diff --git a/amd/packages/logging.scm b/amd/packages/logging.scm
new file mode 100644
index 0000000..d369ab9
--- /dev/null
+++ b/amd/packages/logging.scm
@@ -0,0 +1,44 @@
+;;; Copyright © 2024 Advanced Micro Devices, Inc.
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (amd packages logging)
+ #:use-module (guix packages)
+ #:use-module (guix git-download)
+ #:use-module (gnu packages logging))
+
+;; This package is needed only for the rocprofiler-register library.
+;; Don't export its symbol publicly for now (consider upstreaming instead!)
+(define-public glog-0.7
+ (package
+ (inherit glog)
+ (name "glog")
+ (version "0.7.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/google/glog.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zh482ga8mndsw277h9wrq4i5xffji0li3v0xha1i6j1llzicz7s"))))
+ (arguments
+ (list
+ ;; Tests pass but package fails to install.
+ ;; Fails in phase 'install-license-files'. Disabling for now.
+ #:tests? #f))
+ (properties `((hidden? . #t) ,@(package-properties glog)))))
diff --git a/amd/packages/patches/hip-headers-5.6.1.patch b/amd/packages/patches/hip-headers-5.6.1.patch
new file mode 100644
index 0000000..ce7dc2d
--- /dev/null
+++ b/amd/packages/patches/hip-headers-5.6.1.patch
@@ -0,0 +1,15 @@
+FindHIP: Improved search logic for HIP_ROOT_DIR
+diff --git a/cmake/FindHIP.cmake b/cmake/FindHIP.cmake
+index 24e475d3..43f4ce28 100644
+--- a/cmake/FindHIP.cmake
++++ b/cmake/FindHIP.cmake
+@@ -89,6 +89,9 @@ if(NOT APPLE)
+ DOC "HIP installed location"
+ NO_DEFAULT_PATH
+ )
++ if(NOT HIP_ROOT_DIR)
++ find_path(HIP_ROOT_DIR NAMES bin/hipconfig)
++ endif()
+ if(NOT EXISTS ${HIP_ROOT_DIR})
+ if(HIP_FIND_REQUIRED)
+ message(FATAL_ERROR "Specify HIP_ROOT_DIR")
diff --git a/amd/packages/patches/hipamd-5.6.1.patch b/amd/packages/patches/hipamd-5.6.1.patch
new file mode 100644
index 0000000..6d6b18f
--- /dev/null
+++ b/amd/packages/patches/hipamd-5.6.1.patch
@@ -0,0 +1,16 @@
+Remove windows specific versions of hipcc and hipconfig
+diff --git a/hipamd/CMakeLists.txt b/hipamd/CMakeLists.txt
+index c14a9ad32..f882e890b 100755
+--- a/hipamd/CMakeLists.txt
++++ b/hipamd/CMakeLists.txt
+@@ -400,8 +400,8 @@ if (NOT ${HIPCC_BIN_DIR} STREQUAL "")
+ install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.pl DESTINATION bin)
+ install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.pl DESTINATION bin)
+ install(PROGRAMS ${HIPCC_BIN_DIR}/hipvars.pm DESTINATION bin)
+- install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin)
+- install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin)
++ # install(PROGRAMS ${HIPCC_BIN_DIR}/hipcc.bat DESTINATION bin)
++ # install(PROGRAMS ${HIPCC_BIN_DIR}/hipconfig.bat DESTINATION bin)
+ endif()
+
+ #############################
diff --git a/amd/packages/patches/hipblas-6.2.0.patch b/amd/packages/patches/hipblas-6.2.0.patch
new file mode 100644
index 0000000..ea62494
--- /dev/null
+++ b/amd/packages/patches/hipblas-6.2.0.patch
@@ -0,0 +1,21 @@
+Remove git as a hard dependency and set rocblas_VERSION_COMMIT_ID
+diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
+index 9766be2..dbecfca 100644
+--- a/library/CMakeLists.txt
++++ b/library/CMakeLists.txt
+@@ -45,14 +45,7 @@ if( BUILD_VERBOSE )
+ endif( )
+
+ # Get the git hash of the hipBLAS branch
+-find_package(Git REQUIRED)
+-
+-execute_process(COMMAND "${GIT_EXECUTABLE}" rev-parse HEAD
+- WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
+- OUTPUT_VARIABLE GIT_HASH_HIPBLAS
+- OUTPUT_STRIP_TRAILING_WHITESPACE)
+-
+-set(hipblas_VERSION_COMMIT_ID "${GIT_HASH_HIPBLAS}")
++set(hipblas_VERSION_COMMIT_ID "unknown_guix")
+
+ # log build commits
+ message( STATUS "*** Building hipBLAS commit: ${hipblas_VERSION_COMMIT_ID}" )
diff --git a/amd/packages/patches/hipcc-5.6.1.patch b/amd/packages/patches/hipcc-5.6.1.patch
new file mode 100644
index 0000000..595c301
--- /dev/null
+++ b/amd/packages/patches/hipcc-5.6.1.patch
@@ -0,0 +1,35 @@
+Make the hipcc compiler wrapper compatible with the modified hipvars perl module
+and the more modular pacakging approach compared to upstream ROCm
+diff --git a/bin/hipcc.pl b/bin/hipcc.pl
+index 56dcda2..e75ef67 100755
+--- a/bin/hipcc.pl
++++ b/bin/hipcc.pl
+@@ -128,8 +128,10 @@ $HIP_CLANG_PATH = $hipvars::HIP_CLANG_PATH;
+ $CUDA_PATH = $hipvars::CUDA_PATH;
+ $HIP_PATH = $hipvars::HIP_PATH;
+ $ROCM_PATH = $hipvars::ROCM_PATH;
++$ROCMINFO_PATH = $hipvars::ROCMINFO_PATH;
+ $HIP_VERSION = $hipvars::HIP_VERSION;
+-$HIP_ROCCLR_HOME = $hipvars::HIP_ROCCLR_HOME;
++$HIP_ROCCLR_HOME = $hipvars::HIP_ROCCLR_HOME;
++$DEVICE_LIB_PATH = $hipvars::DEVICE_LIB_PATH;
+
+ if ($HIP_PLATFORM eq "amd") {
+ $HIP_INCLUDE_PATH = "$HIP_ROCCLR_HOME/include";
+@@ -483,7 +485,7 @@ if($HIP_PLATFORM eq "amd"){
+ $targetsStr = $ENV{HCC_AMDGPU_TARGET};
+ } elsif (not $isWindows) {
+ # Else try using rocm_agent_enumerator
+- $ROCM_AGENT_ENUM = "${ROCM_PATH}/bin/rocm_agent_enumerator";
++ $ROCM_AGENT_ENUM = "${ROCMINFO_PATH}/bin/rocm_agent_enumerator";
+ $targetsStr = `${ROCM_AGENT_ENUM} -t GPU`;
+ $targetsStr =~ s/\n/,/g;
+ }
+@@ -613,6 +615,7 @@ if ($needLDFLAGS and not $compileOnly) {
+ $CMD .= " $HIPLDFLAGS";
+ }
+ $CMD .= " $toolArgs";
++$CMD .= " --hip-path=${HIP_PATH}";
+
+ if ($verbose & 0x1) {
+ print "hipcc-cmd: ", $CMD, "\n";
diff --git a/amd/packages/patches/hipify-6.2.0.patch b/amd/packages/patches/hipify-6.2.0.patch
new file mode 100644
index 0000000..04cac7b
--- /dev/null
+++ b/amd/packages/patches/hipify-6.2.0.patch
@@ -0,0 +1,13 @@
+Ensure installed files carry over the same permissions as the source.
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0d105e20..0c1bbb57 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -177,6 +177,7 @@ if (NOT HIPIFY_CLANG_TESTS_ONLY)
+ install(
+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin
+ DESTINATION .
++ USE_SOURCE_PERMISSIONS
+ PATTERN "hipify-perl"
+ PATTERN "*.sh"
+ PATTERN "findcode.sh" EXCLUDE
diff --git a/amd/packages/patches/llvm-rocm-5.7.1.patch b/amd/packages/patches/llvm-rocm-5.7.1.patch
new file mode 100644
index 0000000..832a616
--- /dev/null
+++ b/amd/packages/patches/llvm-rocm-5.7.1.patch
@@ -0,0 +1,126 @@
+Fix libpath to ensure standard path is not modified or overwritten.
+NOTE: upstream clang-*-libc-search-path.patch does NOT apply cleanly
+for ROCm versions based on LLVM 17. Therefore it is duplicated here.
+diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp
+index 85d82180a805..b7bc4a28f5ab 100644
+--- a/clang/lib/Driver/Distro.cpp
++++ b/clang/lib/Driver/Distro.cpp
+@@ -98,6 +98,10 @@ static Distro::DistroType DetectLsbRelease(llvm::vfs::FileSystem &VFS) {
+ }
+
+ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
++ // The compiler should always behave the same, even when used via Guix on a
++ // foreign distro.
++ return Distro::UnknownDistro;
++
+ Distro::DistroType Version = Distro::UnknownDistro;
+
+ // Newer freedesktop.org's compilant systemd-based systems
+diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp
+index fe3664647560..bab3b75b6314 100644
+--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
++++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
+@@ -271,6 +271,7 @@ RocmInstallationDetector::getInstallationPathCandidates() {
+ ROCmSearchDirs.emplace_back(D.ResourceDir,
+ /*StrictChecking=*/true);
+
++ #if 0
+ ROCmSearchDirs.emplace_back(D.SysRoot + "/opt/rocm",
+ /*StrictChecking=*/true);
+
+@@ -318,6 +319,7 @@ RocmInstallationDetector::getInstallationPathCandidates() {
+ /*StrictChecking=*/true);
+ }
+
++ #endif
+ DoPrintROCmSearchDirs();
+ return ROCmSearchDirs;
+ }
+diff --git a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
+index feaf0570b56f..c3e4df02ee94 100644
+--- a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
++++ b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
+@@ -214,9 +214,9 @@ const char *AMDGCN::OpenMPLinker::constructLLVMLinkCommand(
+ }
+
+ // If device debugging turned on, add specially built bc files
+- StringRef libpath = Args.MakeArgString(C.getDriver().Dir + "/../" + LibSuffix);
++ StringRef libpath = Args.MakeArgString(C.getDriver().InstalledDir + "/../" + LibSuffix);
+ std::string lib_debug_perf_path = FindDebugPerfInLibraryPath(LibSuffix);
+- if (!lib_debug_perf_path.empty())
++ if (!lib_debug_perf_path.empty() && LibSuffix != "lib")
+ libpath = lib_debug_perf_path;
+
+ llvm::SmallVector<std::string, 12> BCLibs;
+diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp
+index 7bc0892b6734..25de67d680b4 100644
+--- a/clang/lib/Driver/ToolChains/Cuda.cpp
++++ b/clang/lib/Driver/ToolChains/Cuda.cpp
+@@ -125,6 +125,9 @@ CudaInstallationDetector::CudaInstallationDetector(
+ const Driver &D, const llvm::Triple &HostTriple,
+ const llvm::opt::ArgList &Args)
+ : D(D) {
++ // Don't look for CUDA in /usr.
++ return;
++
+ struct Candidate {
+ std::string Path;
+ bool StrictChecking;
+diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
+index 94c26cb94ee9..56c23ed2e24c 100644
+--- a/clang/lib/Driver/ToolChains/Linux.cpp
++++ b/clang/lib/Driver/ToolChains/Linux.cpp
+@@ -187,6 +187,10 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+
+ Generic_GCC::PushPPaths(PPaths);
+
++ // Comment out the distro-specific tweaks so that they don't bite when
++ // using Guix on a foreign distro.
++#if 0
++
+ Distro Distro(D.getVFS(), Triple);
+
+ if (Distro.IsAlpineLinux() || Triple.isAndroid()) {
+@@ -247,6 +251,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+
+ #ifdef ENABLE_LINKER_BUILD_ID
+ ExtraOpts.push_back("--build-id");
++#endif
+ #endif
+
+ // The selection of paths to try here is designed to match the patterns which
+@@ -268,6 +273,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ }
+ Generic_GCC::AddMultilibPaths(D, SysRoot, OSLibDir, MultiarchTriple, Paths);
+
++#if 0
+ addPathIfExists(D, concat(SysRoot, "/lib", MultiarchTriple), Paths);
+ addPathIfExists(D, concat(SysRoot, "/lib/..", OSLibDir), Paths);
+
+@@ -296,9 +302,11 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ addPathIfExists(D, concat(SysRoot, "/", OSLibDir, ABIName), Paths);
+ addPathIfExists(D, concat(SysRoot, "/usr", OSLibDir, ABIName), Paths);
+ }
++#endif
+
+ Generic_GCC::AddMultiarchPaths(D, SysRoot, OSLibDir, Paths);
+
++#if 0
+ // The deprecated -DLLVM_ENABLE_PROJECTS=libcxx configuration installs
+ // libc++.so in D.Dir+"/../lib/". Detect this path.
+ // TODO Remove once LLVM_ENABLE_PROJECTS=libcxx is unsupported.
+@@ -308,6 +316,14 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+
+ addPathIfExists(D, concat(SysRoot, "/lib"), Paths);
+ addPathIfExists(D, concat(SysRoot, "/usr/lib"), Paths);
++#endif
++
++ // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
++ // and friends can be found.
++ addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
++
++ // Add GCC's lib/ directory so libstdc++.so can be found.
++ addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths);
+ }
+
+ ToolChain::RuntimeLibType Linux::GetDefaultRuntimeLibType() const {
diff --git a/amd/packages/patches/llvm-rocm-6.1.1.patch b/amd/packages/patches/llvm-rocm-6.1.1.patch
new file mode 100644
index 0000000..3201e4f
--- /dev/null
+++ b/amd/packages/patches/llvm-rocm-6.1.1.patch
@@ -0,0 +1,156 @@
+Set perl script activation and necessary GUIX variables for HIPCC.
+Fix libpath to ensure standard path is not modified or overwritten.
+NOTE: upstream clang-*-libc-search-path.patch does NOT apply cleanly
+for ROCm versions based on LLVM 17. Therefore it is duplicated here.
+diff --git a/amd/hipcc/bin/hipcc.pl b/amd/hipcc/bin/hipcc.pl
+index 513a4278482c..65ecd6f9c6e1 100755
+--- a/amd/hipcc/bin/hipcc.pl
++++ b/amd/hipcc/bin/hipcc.pl
+@@ -129,8 +129,10 @@ $HIP_CLANG_PATH = $hipvars::HIP_CLANG_PATH;
+ $CUDA_PATH = $hipvars::CUDA_PATH;
+ $HIP_PATH = $hipvars::HIP_PATH;
+ $ROCM_PATH = $hipvars::ROCM_PATH;
++$ROCMINFO_PATH = $hipvars::ROCMINFO_PATH;
+ $HIP_VERSION = $hipvars::HIP_VERSION;
+-$HIP_ROCCLR_HOME = $hipvars::HIP_ROCCLR_HOME;
++$HIP_ROCCLR_HOME = $hipvars::HIP_ROCCLR_HOME;
++$DEVICE_LIB_PATH = $hipvars::DEVICE_LIB_PATH;
+
+ sub get_normalized_path {
+ return $doubleQuote . $_[0] . $doubleQuote;
+@@ -484,7 +486,7 @@ if($HIP_PLATFORM eq "amd"){
+ $targetsStr = $ENV{HCC_AMDGPU_TARGET};
+ } elsif (not $isWindows) {
+ # Else try using rocm_agent_enumerator
+- $ROCM_AGENT_ENUM = "${ROCM_PATH}/bin/rocm_agent_enumerator";
++ $ROCM_AGENT_ENUM = "${ROCMINFO_PATH}/bin/rocm_agent_enumerator";
+ $targetsStr = `${ROCM_AGENT_ENUM} -t GPU`;
+ $targetsStr =~ s/\n/,/g;
+ }
+@@ -610,6 +612,7 @@ if ($needLDFLAGS and not $compileOnly) {
+ $CMD .= " $HIPLDFLAGS";
+ }
+ $CMD .= " $toolArgs";
++$CMD .= " --hip-path=${HIP_PATH}";
+
+ if ($verbose & 0x1) {
+ print "hipcc-cmd: ", $CMD, "\n";
+diff --git a/clang/lib/Driver/Distro.cpp b/clang/lib/Driver/Distro.cpp
+index e86b589a1cfb..ca702717b482 100644
+--- a/clang/lib/Driver/Distro.cpp
++++ b/clang/lib/Driver/Distro.cpp
+@@ -99,6 +99,10 @@ static Distro::DistroType DetectLsbRelease(llvm::vfs::FileSystem &VFS) {
+ }
+
+ static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
++ // The compiler should always behave the same, even when used via Guix on a
++ // foreign distro.
++ return Distro::UnknownDistro;
++
+ Distro::DistroType Version = Distro::UnknownDistro;
+
+ // Newer freedesktop.org's compilant systemd-based systems
+diff --git a/clang/lib/Driver/ToolChains/AMDGPU.cpp b/clang/lib/Driver/ToolChains/AMDGPU.cpp
+index 8eb0ee0ef3c9..70271113c126 100644
+--- a/clang/lib/Driver/ToolChains/AMDGPU.cpp
++++ b/clang/lib/Driver/ToolChains/AMDGPU.cpp
+@@ -271,6 +271,7 @@ RocmInstallationDetector::getInstallationPathCandidates() {
+ ROCmSearchDirs.emplace_back(D.ResourceDir,
+ /*StrictChecking=*/true);
+
++ #if 0
+ ROCmSearchDirs.emplace_back(D.SysRoot + "/opt/rocm",
+ /*StrictChecking=*/true);
+
+@@ -315,6 +316,7 @@ RocmInstallationDetector::getInstallationPathCandidates() {
+ ROCmSearchDirs.emplace_back(D.SysRoot + "/usr",
+ /*StrictChecking=*/true);
+
++ #endif
+ DoPrintROCmSearchDirs();
+ return ROCmSearchDirs;
+ }
+diff --git a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
+index 2511a4e73afc..351b805681bb 100644
+--- a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
++++ b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
+@@ -244,9 +244,9 @@ const char *amdgpu::dlr::getLinkCommandArgs(
+ }
+
+ // If device debugging turned on, add specially built bc files
+- StringRef libpath = Args.MakeArgString(C.getDriver().Dir + "/../" + LibSuffix);
++ StringRef libpath = Args.MakeArgString(C.getDriver().InstalledDir + "/../" + LibSuffix);
+ std::string lib_debug_perf_path = FindDebugPerfInLibraryPath(LibSuffix);
+- if (!lib_debug_perf_path.empty())
++ if (!lib_debug_perf_path.empty() && LibSuffix != "lib")
+ libpath = lib_debug_perf_path;
+
+ llvm::SmallVector<std::string, 12> BCLibs;
+diff --git a/clang/lib/Driver/ToolChains/Cuda.cpp b/clang/lib/Driver/ToolChains/Cuda.cpp
+index e4691d006848..1a6b8b4b571c 100644
+--- a/clang/lib/Driver/ToolChains/Cuda.cpp
++++ b/clang/lib/Driver/ToolChains/Cuda.cpp
+@@ -129,6 +129,9 @@ CudaInstallationDetector::CudaInstallationDetector(
+ const Driver &D, const llvm::Triple &HostTriple,
+ const llvm::opt::ArgList &Args)
+ : D(D) {
++ // Don't look for CUDA in /usr
++ return;
++
+ struct Candidate {
+ std::string Path;
+ bool StrictChecking;
+diff --git a/clang/lib/Driver/ToolChains/Linux.cpp b/clang/lib/Driver/ToolChains/Linux.cpp
+index 957ff0f83271..e1f782d1d1e8 100644
+--- a/clang/lib/Driver/ToolChains/Linux.cpp
++++ b/clang/lib/Driver/ToolChains/Linux.cpp
+@@ -220,6 +220,10 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+
+ Generic_GCC::PushPPaths(PPaths);
+
++ // Comment out the distro-specific tweaks so that they don't bite when
++ // using Guix on a foreign distro
++#if 0
++
+ Distro Distro(D.getVFS(), Triple);
+
+ if (Distro.IsAlpineLinux() || Triple.isAndroid()) {
+@@ -280,6 +284,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+
+ #ifdef ENABLE_LINKER_BUILD_ID
+ ExtraOpts.push_back("--build-id");
++#endif
+ #endif
+
+ // The selection of paths to try here is designed to match the patterns which
+@@ -300,7 +305,7 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ addPathIfExists(D, concat(SysRoot, "/usr/libo32"), Paths);
+ }
+ Generic_GCC::AddMultilibPaths(D, SysRoot, OSLibDir, MultiarchTriple, Paths);
+-
++#if 0
+ addPathIfExists(D, concat(SysRoot, "/lib", MultiarchTriple), Paths);
+ addPathIfExists(D, concat(SysRoot, "/lib/..", OSLibDir), Paths);
+
+@@ -329,11 +334,21 @@ Linux::Linux(const Driver &D, const llvm::Triple &Triple, const ArgList &Args)
+ addPathIfExists(D, concat(SysRoot, "/", OSLibDir, ABIName), Paths);
+ addPathIfExists(D, concat(SysRoot, "/usr", OSLibDir, ABIName), Paths);
+ }
++#endif
+
+ Generic_GCC::AddMultiarchPaths(D, SysRoot, OSLibDir, Paths);
+
++#if 0
+ addPathIfExists(D, concat(SysRoot, "/lib"), Paths);
+ addPathIfExists(D, concat(SysRoot, "/usr/lib"), Paths);
++#endif
++
++ // Add libc's lib/ directory to the search path, so that crt1.o, crti.o,
++ // and friends can be found
++ addPathIfExists(D, "@GLIBC_LIBDIR@", Paths);
++
++ // Add GCC's lib/ directory so libstdc++.so can be found
++ addPathIfExists(D, GCCInstallation.getParentLibPath(), Paths);
+ }
+
+ ToolChain::RuntimeLibType Linux::GetDefaultRuntimeLibType() const {
diff --git a/amd/packages/patches/llvm-rocm-6.2.0.patch b/amd/packages/patches/llvm-rocm-6.2.0.patch
new file mode 100644
index 0000000..5c865e3
--- /dev/null
+++ b/amd/packages/patches/llvm-rocm-6.2.0.patch
@@ -0,0 +1,77 @@
+Set perl script activation and necessary GUIX variables for HIPCC.
+Fix libpath to ensure standard path is not modified or overwritten.
+diff --git a/amd/hipcc/bin/hipcc b/amd/hipcc/bin/hipcc
+index 8559bb099f1c..4002631b5721 100755
+--- a/amd/hipcc/bin/hipcc
++++ b/amd/hipcc/bin/hipcc
+@@ -29,7 +29,7 @@ use File::Spec::Functions 'catfile';
+
+ # TODO: By default select perl script until change incorporated in HIP build script.
+ my $USE_PERL_SCRIPT = $ENV{'HIP_USE_PERL_SCRIPTS'};
+-$USE_PERL_SCRIPT //= 0; # use defined-or assignment operator. Use env var, but if not defined default to 1.
++$USE_PERL_SCRIPT //= 1; # use defined-or assignment operator. Use env var, but if not defined default to 1.
+
+ my $isWindows = ($^O eq 'MSWin32' or $^O eq 'msys');
+ # escapes args with quotes SWDEV-341955
+diff --git a/amd/hipcc/bin/hipcc.pl b/amd/hipcc/bin/hipcc.pl
+index 27839e58fa4e..a5f896df2283 100755
+--- a/amd/hipcc/bin/hipcc.pl
++++ b/amd/hipcc/bin/hipcc.pl
+@@ -129,8 +129,10 @@ $HIP_CLANG_PATH = $hipvars::HIP_CLANG_PATH;
+ $CUDA_PATH = $hipvars::CUDA_PATH;
+ $HIP_PATH = $hipvars::HIP_PATH;
+ $ROCM_PATH = $hipvars::ROCM_PATH;
++$ROCMINFO_PATH = $hipvars::ROCMINFO_PATH;
+ $HIP_VERSION = $hipvars::HIP_VERSION;
+-$HIP_ROCCLR_HOME = $hipvars::HIP_ROCCLR_HOME;
++$HIP_ROCCLR_HOME = $hipvars::HIP_ROCCLR_HOME;
++$DEVICE_LIB_PATH = $hipvars::DEVICE_LIB_PATH;
+
+ sub get_normalized_path {
+ return $doubleQuote . $_[0] . $doubleQuote;
+@@ -480,7 +482,7 @@ if($HIP_PLATFORM eq "amd"){
+ $targetsStr = $ENV{HCC_AMDGPU_TARGET};
+ } elsif (not $isWindows) {
+ # Else try using rocm_agent_enumerator
+- $ROCM_AGENT_ENUM = "${ROCM_PATH}/bin/rocm_agent_enumerator";
++ $ROCM_AGENT_ENUM = "${ROCMINFO_PATH}/bin/rocm_agent_enumerator";
+ $targetsStr = `${ROCM_AGENT_ENUM} -t GPU`;
+ $targetsStr =~ s/\n/,/g;
+ }
+@@ -606,6 +608,7 @@ if ($needLDFLAGS and not $compileOnly) {
+ $CMD .= " $HIPLDFLAGS";
+ }
+ $CMD .= " $toolArgs";
++$CMD .= " --hip-path=${HIP_PATH}";
+
+ if ($verbose & 0x1) {
+ print "hipcc-cmd: ", $CMD, "\n";
+diff --git a/amd/hipcc/bin/hipconfig b/amd/hipcc/bin/hipconfig
+index f9385bb94149..58a2abf51bde 100755
+--- a/amd/hipcc/bin/hipconfig
++++ b/amd/hipcc/bin/hipconfig
+@@ -29,7 +29,7 @@ use File::Spec::Functions 'catfile';
+
+ #TODO: By default select perl script until change incorporated in HIP build script
+ my $USE_PERL_SCRIPT = $ENV{'HIP_USE_PERL_SCRIPTS'};
+-$USE_PERL_SCRIPT //= 0; # use defined-or assignment operator. Use env var, but if not defined default to 0.
++$USE_PERL_SCRIPT //= 1; # use defined-or assignment operator. Use env var, but if not defined default to 0.
+ my $isWindows = ($^O eq 'MSWin32' or $^O eq 'msys');
+ my $SCRIPT_DIR=dirname(__FILE__);
+ if ($USE_PERL_SCRIPT) {
+diff --git a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
+index e27d59206e99..29ae8736353b 100644
+--- a/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
++++ b/clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
+@@ -255,9 +255,9 @@ const char *amdgpu::dlr::getLinkCommandArgs(
+ }
+
+ // If device debugging turned on, add specially built bc files
+- StringRef libpath = Args.MakeArgString(C.getDriver().Dir + "/../" + LibSuffix);
++ StringRef libpath = Args.MakeArgString(C.getDriver().InstalledDir + "/../" + LibSuffix);
+ std::string lib_debug_perf_path = FindDebugPerfInLibraryPath(LibSuffix);
+- if (!lib_debug_perf_path.empty())
++ if (!lib_debug_perf_path.empty() && LibSuffix != "lib")
+ libpath = lib_debug_perf_path;
+
+ llvm::SmallVector<std::string, 12> BCLibs;
diff --git a/amd/packages/patches/perfetto-meson.patch b/amd/packages/patches/perfetto-meson.patch
new file mode 100644
index 0000000..0330aef
--- /dev/null
+++ b/amd/packages/patches/perfetto-meson.patch
@@ -0,0 +1,22 @@
+Install perfetto headers
+diff --git a/meson.build b/meson.build
+index 5ef6fce52c..561dcf4768 100644
+--- a/meson.build
++++ b/meson.build
+@@ -44,6 +44,7 @@ lib_perfetto = static_library(
+ )
+
+ inc_perfetto = include_directories('sdk')
++install_headers('sdk/perfetto.h')
+
+ dir_perfetto_trace = join_paths(meson.current_source_dir(),
+ 'protos/perfetto/trace')
+@@ -57,3 +58,8 @@ dep_perfetto = declare_dependency(
+ 'pkgdatadir': dir_perfetto_trace,
+ }
+ )
++
++pkg = import('pkgconfig')
++pkg.generate(lib_perfetto)
++
++
diff --git a/amd/packages/patches/rocblas-6.2.0.patch b/amd/packages/patches/rocblas-6.2.0.patch
new file mode 100644
index 0000000..f890774
--- /dev/null
+++ b/amd/packages/patches/rocblas-6.2.0.patch
@@ -0,0 +1,28 @@
+Remove git as a hard dependency and set rocblas_VERSION_COMMIT_ID
+diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
+index 90a75dd3..8ca10301 100755
+--- a/library/CMakeLists.txt
++++ b/library/CMakeLists.txt
+@@ -143,20 +143,12 @@ if( BUILD_VERBOSE )
+ message( STATUS "\t==>CMAKE_SHARED_LINKER_FLAGS_RELEASE: ${CMAKE_SHARED_LINKER_FLAGS_RELEASE}" )
+ endif( )
+
+-find_package(Git REQUIRED)
+-
+-# Get the git hash of the rocBLAS branch
+-execute_process(
+- COMMAND "${GIT_EXECUTABLE}" rev-parse HEAD
+- WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
+- OUTPUT_VARIABLE GIT_HASH_ROCBLAS
+- OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+ #set the rocBLAS commit hash
+-set(rocblas_VERSION_COMMIT_ID "${GIT_HASH_ROCBLAS}")
++set(rocblas_VERSION_COMMIT_ID "unknown_guix")
+
+ #set the Tensile commit hash
+-set(tensile_VERSION_COMMIT_ID "${tensile_tag}")
++set(tensile_VERSION_COMMIT_ID "unkown_guix")
+
+ # log build commits
+ message( STATUS "*** Building rocBLAS commit: ${rocblas_VERSION_COMMIT_ID}" )
diff --git a/amd/packages/patches/rochpl-6.0.0-cmake.patch b/amd/packages/patches/rochpl-6.0.0-cmake.patch
new file mode 100644
index 0000000..77f52c4
--- /dev/null
+++ b/amd/packages/patches/rochpl-6.0.0-cmake.patch
@@ -0,0 +1,61 @@
+Add support for gfx1031
+Install executables in bin subdirectory
+Allow roctracer to be installed in a separate location
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c1c8704..48489a7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -110,7 +110,7 @@ if(HIP_VERSION VERSION_GREATER_EQUAL "4.3")
+ set(TARGETS "${TARGETS};gfx90a")
+ endif()
+ if (HIP_VERSION VERSION_GREATER_EQUAL "5.3")
+- set(TARGETS "${TARGETS};gfx940")
++ set(TARGETS "${TARGETS};gfx940;gfx1030;gfx1100")
+ endif()
+ if (HIP_VERSION VERSION_GREATER_EQUAL "5.7")
+ set(TARGETS "${TARGETS};gfx941;gfx942")
+@@ -195,9 +195,9 @@ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/scripts/HPL.dat
+ rocm_install_targets(TARGETS rochpl)
+
+ install(PROGRAMS ${CMAKE_BINARY_DIR}/run_rochpl ${CMAKE_BINARY_DIR}/mpirun_rochpl
+- DESTINATION ${CMAKE_INSTALL_PREFIX})
++ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
+ install(FILES ${CMAKE_BINARY_DIR}/HPL.dat
+- DESTINATION ${CMAKE_INSTALL_PREFIX})
++ DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
+
+ # Package specific CPACK vars
+ set(CPACK_DEBIAN_PACKAGE_DEPENDS "rocm-dev (>= 3.5.0)")
+diff --git a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+index 2154faf..cb824f0 100644
+--- a/cmake/Dependencies.cmake
++++ b/cmake/Dependencies.cmake
+@@ -83,10 +83,10 @@ list(APPEND CMAKE_PREFIX_PATH ${ROCBLAS_PATH} ${ROCM_PATH} )
+ list(APPEND CMAKE_MODULE_PATH ${ROCM_PATH}/lib/cmake/hip )
+
+ find_library(ROCTRACER NAMES roctracer64
+- PATHS ${ROCM_PATH}/lib
++ PATHS ${ROCTRACER_PATH}/lib
+ NO_DEFAULT_PATH)
+ find_library(ROCTX NAMES roctx64
+- PATHS ${ROCM_PATH}/lib
++ PATHS ${ROCTRACER_PATH}/lib
+ NO_DEFAULT_PATH)
+
+ message("-- roctracer: ${ROCTRACER}")
+@@ -94,13 +94,13 @@ message("-- roctx: ${ROCTX}")
+
+ add_library(roc::roctracer SHARED IMPORTED)
+ set_target_properties(roc::roctracer PROPERTIES
+- INTERFACE_INCLUDE_DIRECTORIES "${ROCM_PATH}/include"
++ INTERFACE_INCLUDE_DIRECTORIES "${ROCTRACER_PATH}/include"
+ INTERFACE_LINK_LIBRARIES "hip::host"
+ IMPORTED_LOCATION "${ROCTRACER}"
+ IMPORTED_SONAME "libroctracer.so")
+ add_library(roc::roctx SHARED IMPORTED)
+ set_target_properties(roc::roctx PROPERTIES
+- INTERFACE_INCLUDE_DIRECTORIES "${ROCM_PATH}/include"
++ INTERFACE_INCLUDE_DIRECTORIES "${ROCTRACER_PATH}/include"
+ INTERFACE_LINK_LIBRARIES "hip::host"
+ IMPORTED_LOCATION "${ROCTX}"
+ IMPORTED_SONAME "libroctx64.so")
diff --git a/amd/packages/patches/rocm-bandwidth-test-reorg.patch b/amd/packages/patches/rocm-bandwidth-test-reorg.patch
new file mode 100644
index 0000000..2186f62
--- /dev/null
+++ b/amd/packages/patches/rocm-bandwidth-test-reorg.patch
@@ -0,0 +1,48 @@
+hsa-runtime64 is provided through rocr-runtime; this patch removes
+CMake paths that tries to resolve hsa-runtime64 using opt/rocm.
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a2172e7..762acfd 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -134,41 +134,6 @@ include(utils)
+ # This scheme could fail when using older builds of ROCm. In such a case the
+ # build system relies on user defined locations to find header and library files
+ find_package(hsa-runtime64 PATHS /opt/rocm )
+-if(${hsa-runtime64_FOUND})
+- # hsa-runtime config files will provide the include path via INSTALL_INTERFACE
+- message("hsa-runtime64 found @ ${hsa-runtime64_DIR} ")
+- set(RBT_HSA_VERSION_MAJ ${hsa-runtime64_VERSION_MAJOR} )
+- set(RBT_HSA_VERSION_MIN ${hsa-runtime64_VERSION_MINOR} )
+- set(RBT_HSA_VERSION_PATCH ${hsa-runtime64_VERSION_PATCH} )
+- # With file reorg changes
+- # Actual header files /opt/rocm-ver/include/hsa/
+- # Wrapper header file /opt/rocm-ver/hsa/include/hsa/
+- # Rocm 5.3.0 will have Hsa file reorg changes. Corresponding Hsa package version is 1056300
+- # If hsa package version greater than or equal to file reorg version,use hsa/hsa.h else use hsa.h
+- math(EXPR RBT_HSA_VERSION_FILEREORG "1056300")
+- add_compile_options(-DRBT_HSA_VERSION_FILEREORG=${RBT_HSA_VERSION_FILEREORG})
+-
+- if( (RBT_HSA_VERSION_MAJ GREATER 999) OR (RBT_HSA_VERSION_MIN GREATER 999) )
+- # Build will fail ,if package version is invalid
+- message(FATAL_ERROR "RBT hsa-runtime64: Too big HSA runtime version number(s)" )
+- else() # if valid hsa package version
+- # find the hsa package version and set flat version
+- math(EXPR RBT_HSA_VERSION_FLAT "(${RBT_HSA_VERSION_MAJ}*1000000+${RBT_HSA_VERSION_MIN}*1000+${RBT_HSA_VERSION_PATCH})" )
+- add_compile_options(-DRBT_HSA_VERSION_FLAT=${RBT_HSA_VERSION_FLAT})
+- endif()
+-else()
+- message("find_package did NOT find hsa-runtime64, finding it the OLD Way")
+- message("Looking for header files in ${ROCR_INC_DIR}")
+- message("Looking for library files in ${ROCR_LIB_DIR}")
+-
+- # Search for ROCr header file in user defined locations
+- # Since the search is for hsa/hsa.h and the default include is "hsa/hsa.h", this will support all version of rocm
+- find_path(ROCR_HDR hsa/hsa.h PATHS ${ROCR_INC_DIR} "/opt/rocm" PATH_SUFFIXES include REQUIRED)
+- INCLUDE_DIRECTORIES(${ROCR_HDR})
+-
+- # Search for ROCr library file in user defined locations
+- find_library(ROCR_LIB ${CORE_RUNTIME_TARGET} PATHS ${ROCR_LIB_DIR} "/opt/rocm" PATH_SUFFIXES lib lib64 REQUIRED)
+-endif()
+
+ #
+ # Set the package version for the test. It is critical that this
diff --git a/amd/packages/patches/rocprof-register-6.2.0.patch b/amd/packages/patches/rocprof-register-6.2.0.patch
new file mode 100644
index 0000000..edcd47f
--- /dev/null
+++ b/amd/packages/patches/rocprof-register-6.2.0.patch
@@ -0,0 +1,26 @@
+Do not let CMake attempt to build fmt and glog; let CMake find it instead
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 30d1308..7572226 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -113,6 +113,6 @@ if(ROCPROFILER_REGISTER_BUILD_SAMPLES)
+ add_subdirectory(samples)
+ endif()
+
+-include(rocprofiler_register_config_packaging)
++#include(rocprofiler_register_config_packaging)
+
+ rocprofiler_register_print_features()
+diff --git a/source/lib/rocprofiler-register/CMakeLists.txt b/source/lib/rocprofiler-register/CMakeLists.txt
+index 840fbed..2cdca02 100644
+--- a/source/lib/rocprofiler-register/CMakeLists.txt
++++ b/source/lib/rocprofiler-register/CMakeLists.txt
+@@ -17,6 +17,8 @@ target_include_directories(
+ rocprofiler-register PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/source
+ ${PROJECT_BINARY_DIR}/source)
+
++find_package(fmt REQUIRED)
++find_package(glog REQUIRED)
+ target_link_libraries(
+ rocprofiler-register
+ PUBLIC rocprofiler-register::headers
diff --git a/amd/packages/patches/rocr-runtime-5.5.patch b/amd/packages/patches/rocr-runtime-5.5.patch
new file mode 100644
index 0000000..72e92fe
--- /dev/null
+++ b/amd/packages/patches/rocr-runtime-5.5.patch
@@ -0,0 +1,16 @@
+Help clang find relevant device libraries
+diff --git a/src/image/blit_src/CMakeLists.txt b/src/image/blit_src/CMakeLists.txt
+index 21f998b..9aa1d8c 100644
+--- a/src/image/blit_src/CMakeLists.txt
++++ b/src/image/blit_src/CMakeLists.txt
+@@ -67,8 +67,8 @@ function(gen_kernel_bc TARGET_ID INPUT_FILE OUTPUT_FILE)
+
+ separate_arguments(CLANG_ARG_LIST UNIX_COMMAND
+ "-O2 -x cl -Xclang -finclude-default-header -cl-denorms-are-zero -cl-std=CL2.0
+- -target amdgcn-amd-amdhsa -mcpu=${TARGET_ID} -mcode-object-version=4
+- -o ${OUTPUT_FILE} ${INPUT_FILE}")
++ -target amdgcn-amd-amdhsa -mcpu=${TARGET_ID} -mcode-object-version=5
++ -o ${OUTPUT_FILE} ${INPUT_FILE} --hip-device-lib-path=${BITCODE_DIR}")
+
+ ## Add custom command to produce a code object file.
+ ## This depends on the kernel source file & compiler.
diff --git a/amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch b/amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch
new file mode 100644
index 0000000..44f9969
--- /dev/null
+++ b/amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch
@@ -0,0 +1,19 @@
+Only copy static files if they do not already exist at the destination
+diff --git a/Tensile/TensileCreateLibrary.py b/Tensile/TensileCreateLibrary.py
+index 2d63160b..a7ccf268 100644
+--- a/Tensile/TensileCreateLibrary.py
++++ b/Tensile/TensileCreateLibrary.py
+@@ -738,8 +738,11 @@ def copyStaticFiles(outputPath=None):
+
+ for fileName in libraryStaticFiles:
+ # copy file
+- shutil.copy( os.path.join(globalParameters["SourcePath"], fileName), \
+- outputPath )
++
++ path = os.path.join(globalParameters["SourcePath"], fileName)
++ if not os.path.isfile(path):
++ shutil.copy( os.path.join(globalParameters["SourcePath"], fileName), \
++ outputPath )
+
+ return libraryStaticFiles
+
diff --git a/amd/packages/rocm-apps.scm b/amd/packages/rocm-apps.scm
new file mode 100644
index 0000000..702b1a1
--- /dev/null
+++ b/amd/packages/rocm-apps.scm
@@ -0,0 +1,251 @@
+;;; Copyright © 2023 Advanced Micro Devices, Inc.
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (amd packages rocm-apps)
+ #:use-module (guix gexp)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (guix licenses)
+ #:use-module (guix download)
+ #:use-module (guix utils)
+
+ #:use-module (gnu packages)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages version-control)
+
+ #:use-module (amd packages rocm-origin)
+ #:use-module (amd packages rocm-libs)
+ #:use-module (amd packages aocl-libs)
+ #:use-module (amd packages rocm-hip)
+
+ #:use-module (guix-hpc packages benchmark))
+
+(define %hpcg-hashes
+ `(
+ ("6.2" . ,(base32 "1y63ypkblnhdrpf81lnn5643j7mdpk8fxpjj8ksc543qa2dg8r1s"))
+ ("6.1" . ,(base32 "1y63ypkblnhdrpf81lnn5643j7mdpk8fxpjj8ksc543qa2dg8r1s"))
+ ("6.0" . ,(base32 "1hd3wzxvs33a9cj9d26931rw0xh22vl3nr0715i9nmnriwwysig4"))
+ ("5.7" . ,(base32 "1dz32xsiccpb7099jvp2hkbabqnmsdjfn0p0h1x2z745c7a6p2ac"))
+ )
+)
+
+(define (hpcg-origin version)
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url
+ "https://github.com/ROCmSoftwarePlatform/rocHPCG.git")
+ (commit (string-append "release/rocm-rel-" version))))
+ (file-name (git-file-name "rochpcg" version))
+ (sha256 (assoc-ref %hpcg-hashes version))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Build without '-march=native' so that the binaries can be used on
+ ;; all the CPUs.
+ #~(substitute* "src/CMakeLists.txt"
+ (("[ ;]-march=native")
+ "")))))
+
+(define (make-hpcg hipamd rocm-cmake rocprim openmpi version)
+ (package
+ (name "hpcg")
+ (version version)
+ (source
+ (hpcg-origin version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:configure-flags #~(list "-DGPU_AWARE_MPI=ON"
+ "-DHPCG_OPENMP=ON"
+ "-DOPT_MEMMGMT=ON"
+ "-DOPT_DEFRAG=ON"
+ "-DOPT_ROCTX=OFF"
+ "-DCMAKE_CXX_FLAGS=-fPIC"
+ (string-append "-DROCM_PATH="
+ #$hipamd))))
+ (native-inputs (list git hipamd rocm-cmake))
+ (inputs (list numactl rocprim))
+ (propagated-inputs (list openmpi))
+ (synopsis "ROCm version of the synthetic HPCG benchmark")
+ (description
+ "rocHPCG is implemented on top of ROCm runtime and toolchains using the HIP programming language, and optimized for AMD's discrete GPUs.")
+ (home-page "https://github.com/ROCmSoftwarePlatform/rocHPCG.git")
+ (license bsd-3)))
+
+(define-public hpcg-rocm
+ (make-hpcg hipamd rocm-cmake rocprim openmpi-rocm
+ rocm-version-major-minor-latest))
+
+(define (make-hpcg-sans-mpi hpcg)
+ (package/inherit hpcg
+ (name (string-append (package-name hpcg) "-sans-mpi"))
+ (propagated-inputs '())
+ (synopsis
+ "ROCm version of the synthetic HPCG benchmark (without MPI support)")))
+
+(define-public hpcg-rocm-sans-mpi
+ (make-hpcg-sans-mpi hpcg-rocm))
+
+(define (make-babelstream hipamd)
+ (package
+ (name "babelstream-hip")
+ (version (string-append "5.0-rocm-"
+ (package-version hipamd)))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/UoB-HPC/BabelStream.git")
+ (commit "v5.0")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0xkkxkmyi99qly427gkdijm9vwvmhwkgfm283ay6f83r66f712g4"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Release"
+ #:tests? #f ;No tests.
+ #:substitutable? #f
+ #:configure-flags #~(list (string-append "-DMODEL=hip")
+ (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc")
+ (string-append
+ "-DCXX_EXTRA_FLAGS=--offload-arch=gfx1030,gfx908,gfx90a;gfx1100"))))
+ (inputs (list hipamd))
+ (properties `((tunable? . #t)))
+ (synopsis "BabelStream: Stream benchmark for GPUs using HIP")
+ (description
+ "Measure memory transfer rates to/from global device memory on GPUs.
+This benchmark is similar in spirit, and based on, John D McCalpin's STREAM benchmark for CPUs.
+The version of BabelStream is built targeting AMD GPUs using HIP.")
+ (home-page "https://github.com/UoB-HPC/BabelStream.git")
+ (license (fsf-free
+ "https://github.com/UoB-HPC/BabelStream/blob/main/LICENSE"
+ "Custom permissive license based on John D. McCalpin's original STREAM benchmark."))))
+
+(define-public babelstream-hip
+ (make-babelstream hipamd))
+
+; rochpl
+(define (make-rochpl rocm-cmake
+ hipamd
+ openmpi-rocm
+ rocblas
+ blis
+ roctracer)
+ (package
+ (name "rochpl")
+ (version (package-version hipamd))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ROCmSoftwarePlatform/rocHPL.git")
+ (commit "30d80ede0189b0aa594658c47ddc13dad1534d02")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1m7cvynkk785iyk1yldslqx3221h9vg035ddc5z4rr67w79j3a1m"))
+ (patches (search-patches
+ "amd/packages/patches/rochpl-6.0.0-cmake.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Release"
+ #:tests? #f ;No tests.
+ #:configure-flags #~(list (string-append "-DROCM_PATH="
+ #$hipamd)
+ (string-append "-DHPL_BLAS_DIR="
+ #$aocl-blis "/lib")
+ (string-append "-DHPL_MPI_DIR="
+ #$openmpi-rocm)
+ (string-append "-DROCTRACER_PATH="
+ #$roctracer))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'rocblas-header-includes
+ (lambda _
+ (substitute* "include/hpl_blas.hpp"
+ (("<rocblas.h>")
+ "<rocblas/rocblas.h>")
+ (("<roctracer.h>")
+ "<roctracer/roctracer.h>")
+ (("<roctx.h>")
+ "<roctracer/roctx.h>")))))))
+ (native-inputs (list rocm-cmake git))
+ (inputs (list hipamd openmpi-rocm rocblas blis roctracer))
+ (synopsis "HPL benchmark for ROCm")
+ (description
+ "rocHPL is a benchmark based on the HPL benchmark application, implemented on top of
+AMD's Radeon Open Compute ROCm Platform, runtime, and toolchains. rocHPL is created using the HIP programming
+language and optimized for AMD's latest discrete GPUs.")
+ (home-page "https://github.com/ROCmSoftwarePlatform/rocHPL.git")
+ (license (list bsd-4 bsd-3))))
+
+(define-public rochpl
+ (make-rochpl rocm-cmake
+ hipamd
+ openmpi-rocm
+ rocblas
+ aocl-blis
+ roctracer))
+
+; osu benchmarks
+(define (make-osubench-rocm openmpi-rocm hipamd rccl)
+ (package/inherit osu-micro-benchmarks
+ (name (string-append (package-name osu-micro-benchmarks) "-rocm"))
+ (version (string-append (package-version osu-micro-benchmarks) ".rocm"
+ (package-version hipamd)))
+
+ (arguments (substitute-keyword-arguments (package-arguments
+ osu-micro-benchmarks)
+ ((#:configure-flags _)
+ #~(list (string-append "CC="
+ #$openmpi-rocm "/bin/mpicc")
+ (string-append "CXX="
+ #$openmpi-rocm "/bin/mpicxx")
+ (string-append "CFLAGS=" "-I"
+ #$(this-package-input "rccl")
+ "/include/rccl")
+ "--enable-rocm"
+ (string-append "--with-rocm="
+ #$(this-package-input "hipamd"))
+ "--enable-rcclomb"
+ (string-append "--with-rccl="
+ #$(this-package-input "rccl"))))
+ ((#:phases phases
+ '%standard-phases)
+ #~(modify-phases #$phases
+ (add-after 'unpack 'patch-configure
+ (lambda _
+ (substitute* (list "configure" "configure.ac")
+ (("__HIP_PLATFORM_HCC__")
+ "__HIP_PLATFORM_AMD__"))))))))
+ ;; Needed due to modified configure.ac.
+ (native-inputs (list automake autoconf))
+ (inputs (modify-inputs (package-inputs osu-micro-benchmarks)
+ (append hipamd)
+ (append rccl)
+ (replace "openmpi" openmpi-rocm)))
+ (synopsis "MPI microbenchmarks with ROCm support.")
+ (description
+ "A collection of host-based and device-based microbenchmarks for MPI
+communication with ROCm support.")))
+
+(define-public osubench-rocm
+ (make-osubench-rocm openmpi-rocm hipamd rccl))
diff --git a/amd/packages/rocm-base.scm b/amd/packages/rocm-base.scm
new file mode 100644
index 0000000..f0f58c3
--- /dev/null
+++ b/amd/packages/rocm-base.scm
@@ -0,0 +1,429 @@
+;;; Copyright © 2023 Advanced Micro Devices, Inc.
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (amd packages rocm-base)
+ #:use-module (amd packages rocm-origin)
+ #:use-module (amd packages logging)
+ #:use-module (guix gexp)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system trivial)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix packages)
+ #:use-module (guix utils)
+ #:use-module (srfi srfi-1)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages libffi)
+ #:use-module (gnu packages elf)
+ #:use-module (gnu packages mpi)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages llvm)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages pretty-print)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages crypto)
+ #:use-module ((guix licenses)
+ #:prefix license:)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages vim))
+
+;; This package is needed only for the clan/llvm ROCm stack. Don't
+;; export its symbol publicly as it might conflict with upstream
+;; libffi (same package name and version).
+(define-public libffi-shared
+ (package
+ (inherit libffi)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'set-CFLAGS
+ (lambda _
+ (setenv "CFLAGS" " -fPIC"))))))
+ (properties `((hidden? . #t) ,@(package-properties libffi)))))
+
+; llvm
+(define (make-llvm-rocm version llvm)
+ (package
+ (inherit llvm)
+ (name (string-append (package-name llvm) "-rocm"))
+ (version version)
+ (source
+ (rocm-origin "llvm-project" version))
+ (inputs (modify-inputs (package-inputs llvm)
+ (replace "libffi" libffi-shared)))
+ (properties `((hidden? . #t) ,@(package-properties llvm)))))
+
+;; Latest version of ROCm depends on llvm-18
+(define-public llvm-rocm
+ (make-llvm-rocm rocm-version-latest llvm-18))
+
+; clang runtime
+(define-public (make-clang-runtime-rocm llvm-rocm clang-runtime)
+ (package
+ (inherit clang-runtime)
+ (name (string-append (package-name clang-runtime) "-rocm"))
+ (version (package-version llvm-rocm))
+ (source
+ (rocm-origin "llvm-project" version))
+ (inputs (modify-inputs (package-inputs clang-runtime)
+ (replace "llvm" llvm-rocm)
+ (replace "libffi" libffi-shared)
+ (append libxcrypt)))
+ (properties `((hidden? . #t) ,@(package-properties clang-runtime)))))
+
+;; Latest version of ROCm depends on llvm-18
+(define-public clang-runtime-rocm
+ (make-clang-runtime-rocm llvm-rocm clang-runtime-18))
+
+; clang
+(define (make-clang-rocm llvm-rocm clang-runtime-rocm clang)
+ (package
+ (inherit clang)
+ (name (string-append (package-name clang) "-rocm"))
+ (version (package-version llvm-rocm))
+ (source
+ (package-source clang-runtime-rocm))
+ (inputs (modify-inputs (package-inputs clang)
+ (delete "clang-tools-extra")))
+ (propagated-inputs (modify-inputs (package-propagated-inputs clang)
+ (replace "llvm" llvm-rocm)
+ (replace "clang-runtime" clang-runtime-rocm)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments clang)
+ ((#:phases phases
+ '(@ () %standard-phases))
+ #~(modify-phases #$phases
+ (replace 'add-tools-extra
+ (lambda _
+ (copy-recursively "../clang-tools-extra" "tools/extra")))))))
+ (properties `((hidden? . #t) ,@(package-properties clang)))))
+
+;; Latest version of ROCm depends on llvm-18
+(define-public clang-rocm
+ (make-clang-rocm llvm-rocm clang-runtime-rocm clang-18))
+
+; lld
+(define (make-lld-rocm llvm-rocm lld)
+ (package
+ (inherit lld)
+ (name (string-append (package-name lld) "-rocm"))
+ (version (package-version llvm-rocm))
+ (source
+ (rocm-origin "llvm-project" version))
+ (inputs (list llvm-rocm))
+ (properties `((hidden? . #t) ,@(package-properties lld)))))
+
+;; Latest version of ROCm depends on llvm-18
+(define-public lld-rocm
+ (make-lld-rocm llvm-rocm lld-18))
+
+; rocm-device-libs
+(define (make-rocm-device-libs clang-rocm)
+ (package
+ (name "rocm-device-libs")
+ (version (package-version clang-rocm))
+ (source
+ (rocm-origin (if (version>=? version "6.1.1") "llvm-project" name)
+ version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Release"
+ #:tests? #f
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'ockl_ocml_irif_inc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (chdir #$(if (version>=? version "6.1.1")
+ "amd/device-libs" "."))
+ (copy-recursively "irif/inc"
+ (string-append (assoc-ref outputs
+ "out")
+ "/irif/inc"))
+ (copy-recursively "oclc/inc"
+ (string-append (assoc-ref outputs
+ "out")
+ "/oclc/inc"))
+ (copy-recursively "ockl/inc"
+ (string-append (assoc-ref outputs
+ "out")
+ "/ockl/inc")))))))
+ (native-inputs (list clang-rocm))
+ (synopsis "ROCm Device libraries")
+ (description
+ "This repository contains the sources and CMake build system for
+a set of AMD specific device-side language runtime libraries.")
+ (home-page "https://github.com/RadeonOpenCompute/ROCm-Device-Libs.git")
+ (license license:ncsa)))
+
+(define-public llvm-device-libs
+ (make-rocm-device-libs clang-rocm))
+
+; roct-thunk-interface
+(define (make-roct-thunk version)
+ (package
+ (name "roct-thunk-interface")
+ (version version)
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Release"
+ #:tests? #f))
+ (inputs (list libdrm numactl))
+ (native-inputs (list `(,gcc "lib") pkg-config))
+ (synopsis "ROCT Thunk interface")
+ (description "This repository includes the user-mode API interfaces used
+to interact with the ROCk driver.")
+ (home-page "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface.git")
+ (license license:expat)))
+
+(define-public roct-thunk
+ (make-roct-thunk rocm-version-latest))
+
+; rocprof-register
+(define (make-rocprof-register version)
+ (package
+ (name "rocprof-register")
+ (version version)
+ (source
+ (rocm-origin "rocprofiler-register" version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ ;; Don't let CMake download and build these dependencies
+ #~(list "-DROCPROFILER_REGISTER_BUILD_GLOG=OFF"
+ "-DROCPROFILER_REGISTER_BUILD_FMT=OFF")))
+ (inputs (list fmt glog-0.7))
+ (synopsis "The rocprofiler-register helper library.")
+ (description
+ "The rocprofiler-register library is a helper library that coordinates
+the modification of the intercept API table(s) of the HSA/HIP/ROCTx runtime libraries by the
+ROCprofiler (v2) library. The purpose of this library is to provide a consistent and automated
+mechanism of enabling performance analysis in the ROCm runtimes which does not rely on environment
+variables or unique methods for each runtime library.")
+ (home-page "https://github.com/rocm/rocprofiler-register")
+ (license license:expat)))
+
+;; Only valid for ROCm 6.2.0 and above
+(define-public rocprof-register
+ (make-rocprof-register rocm-version-latest))
+
+; rocr-runtime
+(define (make-rocr-runtime roct-thunk rocm-device-libs lld-rocm clang-rocm
+ rocprof-register)
+ (package
+ (name "rocr-runtime")
+ (version (package-version rocm-device-libs))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Release"
+ #:tests? #f ;No tests.
+ #:configure-flags #~(list (string-append "-DBITCODE_DIR="
+ #$(this-package-input
+ "rocm-device-libs")
+ "/amdgcn/bitcode/"))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir "src"))))))
+ (inputs (append (list numactl libdrm libffi roct-thunk rocm-device-libs)
+ (if (version>=? version "6.2.0")
+ (list rocprof-register)
+ '())))
+ (native-inputs (list xxd libelf lld-rocm clang-rocm pkg-config))
+ (synopsis "HSA Runtime API and runtime for ROCm")
+ (description
+ "This repository includes the user-mode API interfaces and
+libraries necessary for host applications to launch compute kernels to
+available HSA ROCm kernel agents. Reference source code for the
+core runtime is also available.")
+ (home-page "https://github.com/RadeonOpenCompute/ROCR-Runtime.git")
+ (license license:ncsa)))
+
+;; rocprof-register only required for ROCm 6.2.0 and above
+(define-public rocr-runtime
+ (make-rocr-runtime roct-thunk llvm-device-libs lld-rocm clang-rocm
+ rocprof-register))
+
+; lld-wrapper
+(define-public lld-wrapper-rocm
+ (make-lld-wrapper lld-rocm))
+
+; libomp
+(define (make-libomp-rocm llvm-rocm
+ clang-rocm
+ lld-rocm
+ rocm-device-libs
+ rocr-runtime
+ roct-thunk
+ libomp)
+ (package
+ (inherit libomp)
+ (name (string-append (package-name libomp) "-rocm"))
+ (version (package-version llvm-rocm))
+ (source
+ (rocm-origin "llvm-project" version))
+ (native-inputs (append (list `("gcc:lib" ,gcc "lib"))
+ (modify-inputs (package-native-inputs libomp)
+ (replace "clang" clang-rocm)
+ (replace "llvm" llvm-rocm)
+ (replace "python" python-wrapper)
+ (append lld-rocm)
+ (append elfutils))))
+ (inputs (modify-inputs (package-inputs libomp)
+ (append libdrm) ;required for rocm-5.7 onwards
+ (append numactl) ;required for rocm-5.7 onwards
+ (append roct-thunk) ;required for rocm-5.7 onwards
+ (append libffi-shared)
+ (append rocm-device-libs)
+ (append rocr-runtime)))
+ (arguments
+ (substitute-keyword-arguments (package-arguments libomp)
+ ((#:configure-flags flags)
+ #~(append (list "-DOPENMP_ENABLE_LIBOMPTARGET=1"
+ "-DCMAKE_C_COMPILER=clang"
+ "-DCMAKE_CXX_COMPILER=clang++"
+ "-DCMAKE_BUILD_TYPE=Release" ;strictly speaking unnecesary as debug will be stripped
+ "-DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld" ;can be removed if we use lld-as-ld-wrapper
+ "-DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=lld" ;can be removed if we use lld-as-ld-wrapper
+ "-DLIBOMPTARGET_AMDGCN_GFXLIST=gfx906;gfx908;gfx90a;gfx940;gfx1030;gfx1100"
+ (string-append "-DDEVICELIBS_ROOT="
+ #$(this-package-input "rocm-device-libs"))
+ (string-append "-DLLVM_DIR="
+ #$(this-package-native-input "llvm")))
+ #$flags))
+ ((#:phases phases
+ '(@ () %standard-phases))
+ #~(modify-phases #$phases
+ (add-after 'set-paths 'adjust-LD_LIBRARY_PATH
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "LD_LIBRARY_PATH"
+ (string-append (assoc-ref inputs "llvm") "/lib" ":"
+ (assoc-ref inputs "gcc:lib") "/lib"))))
+ (add-after 'unpack 'patch-clang-tools
+ (lambda _
+ ;; FIXME: Create a patch exposing a configuration option (e.g. -DCLANG_DIR=<...>)
+ ;; to use instead of this substitution
+ (substitute* (append '("openmp/libomptarget/CMakeLists.txt"
+ "openmp/libomptarget/DeviceRTL/CMakeLists.txt")
+ (if #$(version>=? "6.1.2" version)
+ '("openmp/libomptarget/deviceRTLs/amdgcn/CMakeLists.txt")
+ '()))
+ (("find_program\\(CLANG_TOOL clang PATHS \\$\\{LLVM_TOOLS_BINARY_DIR\\}")
+ (string-append "find_program(CLANG_TOOL clang PATHS "
+ #$clang-rocm "/bin"))
+ (("find_program\\(CLANG_OFFLOAD_BUNDLER_TOOL clang-offload-bundler PATHS \\$\\{LLVM_TOOLS_BINARY_DIR\\}")
+ (string-append
+ "find_program(CLANG_OFFLOAD_BUNDLER_TOOL clang-offload-bundler PATHS "
+ #$clang-rocm "/bin"))
+ (("find_program\\(PACKAGER_TOOL clang-offload-packager PATHS \\$\\{LLVM_TOOLS_BINARY_DIR\\}")
+ (string-append
+ "find_program(PACKAGER_TOOL clang-offload-packager PATHS "
+ #$clang-rocm "/bin")))))))))
+ (properties `((hidden? . #t) ,@(package-properties libomp)))))
+
+;; Latest version of ROCm depends on llvm-18
+(define-public libomp-rocm
+ (make-libomp-rocm llvm-rocm
+ clang-rocm
+ lld-wrapper-rocm
+ llvm-device-libs
+ rocr-runtime
+ roct-thunk
+ libomp-18))
+
+; rocm-toolchain
+(define (make-rocm-toolchain clang-rocm
+ libomp-rocm
+ lld-wrapper-rocm
+ rocr-runtime
+ rocm-device-libs
+ roct-thunk)
+ (let ((rocm-clang-toolchain (make-clang-toolchain clang-rocm libomp-rocm)))
+ (package
+ (inherit rocm-clang-toolchain)
+ (name "rocm-toolchain")
+ (version (package-version rocm-clang-toolchain))
+ (inputs (modify-inputs (package-inputs rocm-clang-toolchain)
+ (append lld-wrapper-rocm rocr-runtime rocm-device-libs
+ roct-thunk)))
+ (properties (alist-delete 'hidden?
+ (package-properties rocm-clang-toolchain)))
+ (synopsis
+ "Complete ROCm toolchain, based on the Clang toolchain, for C/C++ development")
+ (description
+ "This package provides a complete ROCm toolchain for C/C++
+development to be installed in user profiles. This includes Clang, as well as
+libc (headers and binaries, plus debugging symbols in the @code{debug}
+output), Binutils, the ROCm device libraries, and the ROCr runtime."))))
+
+(define-public rocm-toolchain
+ (make-rocm-toolchain clang-rocm
+ libomp-rocm
+ lld-wrapper-rocm
+ rocr-runtime
+ llvm-device-libs
+ roct-thunk))
+
+; hipify
+(define (make-hipify clang-rocm)
+ (package
+ (name "hipify")
+ (version (package-version clang-rocm))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Release"
+ #:tests? #f ;No tests.
+ #:configure-flags #~(list "-DCMAKE_C_COMPILER=clang"
+ "-DCMAKE_CXX_COMPILER=clang++"
+ (if (string=? #$(package-version this-package)
+ "5.5.1") "-DSWDEV_375013=ON" ""))
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'configure 'prepare-cmake
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("set.CMAKE_CXX_COMPILER.*")
+ "")
+ (("set.CMAKE_C_COMPILER.*")
+ "")
+ (("--disable-new-dtags")
+ ;; Required for 5.6.1 but does not seem to
+ ;; affect other versions.
+ "--enable-new-dtags")))))))
+ (inputs (list clang-rocm perl))
+ (synopsis "HIPIFY: Convert CUDA to HIP code.")
+ (description
+ "HIPIFY is a set of tools that you can use to automatically translate
+CUDA source code into portable HIP C++.")
+ (home-page "https://github.com/ROCm/HIPIFY")
+ (license license:ncsa)))
+
+(define-public hipify
+ (make-hipify clang-rocm))
diff --git a/amd/packages/rocm-hip.scm b/amd/packages/rocm-hip.scm
new file mode 100644
index 0000000..29b9445
--- /dev/null
+++ b/amd/packages/rocm-hip.scm
@@ -0,0 +1,246 @@
+;;; Copyright © 2023 Advanced Micro Devices, Inc.
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (amd packages rocm-hip)
+ #:use-module (guix gexp)
+ #:use-module (guix utils)
+ #:use-module (guix packages)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
+ #:use-module (guix git-download)
+ #:use-module (guix licenses)
+
+ #:use-module (gnu packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages llvm)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages libffi)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages gl)
+ #:use-module (gnu packages version-control)
+
+ #:use-module (amd packages rocm-origin)
+ #:use-module (amd packages rocm-tools)
+ #:use-module (amd packages rocm-base))
+
+; rocm-comgr
+(define (make-rocm-comgr rocm-device-libs llvm-rocm lld-rocm clang-rocm)
+ (package
+ (name "rocm-comgr")
+ (version (package-version rocm-device-libs))
+ (source
+ (rocm-origin (if (version>=? version "6.1.1") "llvm-project"
+ "rocm-compilersupport") version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (setenv "HIP_DEVICE_LIB_PATH"
+ (string-append #$(this-package-input
+ "rocm-device-libs")
+ "/amdgcn/bitcode"))
+ (chdir #$(if (version>=? version "6.1.1") "amd/comgr"
+ "lib/comgr"))))
+ (add-before 'configure 'fix-path
+ (lambda _
+ (substitute* "src/comgr-env.cpp"
+ (("getDetector\\(\\)->getLLVMPath\\(\\)")
+ (string-append "\""
+ #$clang-rocm "\""))))))))
+ (inputs (list rocm-device-libs))
+ (native-inputs (list llvm-rocm lld-rocm clang-rocm))
+ (synopsis "The ROCm Code Object Manager")
+ (description
+ "The Comgr library provides APIs for compiling and inspecting AMDGPU code objects.")
+ (home-page "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport")
+ (license ncsa)))
+
+(define-public llvm-comgr
+ (make-rocm-comgr llvm-device-libs llvm-rocm lld-rocm clang-rocm))
+
+; hip headers
+(define (make-hip version)
+ (hidden-package (package
+ (name "hip")
+ (version version)
+ (source
+ (rocm-origin name version))
+ (build-system copy-build-system)
+ (arguments
+ (list
+ #:install-plan #~`(("." "/"))))
+ (synopsis
+ "The Heterogeneous Interface for Portability (HIP) framework")
+ (description
+ "The Heterogeneous Interface for Portability (HIP) framework is a
+C++ Runtime API and Kernel Language that allows developers to create portable applications
+for AMD and NVIDIA GPUs from single source code.")
+ (home-page "https://github.com/ROCm-Developer-Tools/HIP")
+ (license expat))))
+
+(define-public hip
+ (make-hip rocm-version-latest))
+
+; hipcc
+(define (make-hipcc rocminfo rocm-toolchain)
+ (hidden-package (package
+ (name "hipcc")
+ (version (package-version rocm-toolchain))
+ (source
+ (rocm-origin (if (version>=? version "6.1.1")
+ "llvm-project" name) version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Release"
+ #:tests? #f
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'chdir
+ (lambda _
+ (chdir #$(if (version>=? version
+ "6.1.1")
+ "amd/hipcc" ".")))))))
+ (propagated-inputs (list rocminfo rocm-toolchain))
+ (synopsis "HIP compiler driver (hipcc)")
+ (description
+ "The HIP compiler driver (hipcc) is a compiler utility that will call
+clang and pass the appropriate include and library options for the target compiler and HIP infrastructure.")
+ (home-page "https://github.com/ROCm/HIPCC")
+ (license expat))))
+
+(define-public hipcc
+ (make-hipcc rocminfo rocm-toolchain))
+
+; clr "hipamd" versions >= 5.6
+(define (make-clr-hipamd hip hipcc rocm-comgr)
+ (package
+ (name "hipamd")
+ (version (package-version hip))
+ (source
+ (rocm-origin "clr" version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Release"
+ #:tests? #f
+ #:configure-flags #~(list (string-append "-DHIP_COMMON_DIR="
+ #$hip)
+ (string-append "-DHIPCC_BIN_DIR="
+ #$hipcc "/bin")
+ "-DCLR_BUILD_HIP=ON"
+ "-DCLR_BUILD_OCL=OFF"
+ "-DHIP_ENABLE_ROCPROFILER_REGISTER=OFF"
+ "-D__HIP_ENABLE_PCH=OFF"
+ "-DHIP_PLATFORM=amd")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'install 'info-version'
+ (lambda _
+ (mkdir (string-append #$output "/.info"))
+ (with-output-to-file (string-append #$output
+ "/.info/version")
+ (lambda ()
+ (display (string-append #$version "-0"))))))
+ (add-after 'install 'overwrite-hipvars
+ (lambda* (#:key outputs inputs #:allow-other-keys)
+ (with-output-to-file (string-append (assoc-ref outputs
+ "out")
+ "/bin/hipvars.pm")
+ (lambda ()
+ (display (string-append "package hipvars;\n"
+ "$isWindows = 0;\n"
+ "$doubleQuote = \"\\\"\";\n"
+ "$CUDA_PATH = \"\";\n"
+ "$HIP_PLATFORM = \"amd\";\n"
+ "$HIP_COMPILER = \"clang\";\n"
+ "$HIP_RUNTIME = \"rocclr\";\n"
+ "$HIP_CLANG_RUNTIME = \""
+ (assoc-ref inputs "rocm-toolchain")
+ "\";\n"
+ "$DEVICE_LIB_PATH = \""
+ (assoc-ref inputs "rocm-toolchain")
+ "/amdgcn/bitcode\";\n"
+ "$HIP_CLANG_PATH = \""
+ (assoc-ref inputs "rocm-toolchain")
+ "/bin\";\n"
+ "$HIP_PATH = \""
+ #$output
+ "\";\n"
+ "$HIP_VERSION= \""
+ #$version
+ "\";\n"
+ "$ROCMINFO_PATH = \""
+ (assoc-ref inputs "rocminfo")
+ "\";\n"
+ "$ROCR_RUNTIME_PATH = \""
+ (assoc-ref inputs "rocm-toolchain")
+ "\";\n"
+ "$HIP_INFO_PATH = \"$HIP_PATH/lib/.hipInfo\";
+"
+ "$HIP_ROCCLR_HOME = $HIP_PATH;\n"
+ "$ROCM_PATH = \""
+ (assoc-ref inputs "rocm-toolchain")
+ "\";")))))))))
+ (native-inputs (list mesa
+ libffi
+ git
+ perl
+ python-wrapper
+ python-cppheaderparser
+ hip
+ hipcc))
+ (propagated-inputs (modify-inputs (package-propagated-inputs hipcc)
+ (append rocm-comgr)))
+ (synopsis "AMD CLR - Compute Language Runtimes for HIP applications")
+ (description
+ "AMD Common Language Runtime contains source code for AMD's
+compute languages runtimes: HIP and OpenCL. This package is built for HIP only.")
+ (home-page "https://github.com/ROCm/clr")
+ (license expat)))
+
+(define-public hipamd
+ (make-clr-hipamd hip hipcc llvm-comgr))
+
+; rocm-cmake
+(define (make-rocm-cmake version)
+ (package
+ (name "rocm-cmake")
+ (version version)
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f)) ;No tests.
+ (synopsis
+ "ROCm-CMake is a collection of CMake modules for common build and development
+tasks within the ROCm project.")
+ (description
+ "ROCm-CMake is a collection of CMake modules for common build and development
+tasks within the ROCm project. It is therefore a build dependency for many of the libraries that
+comprise the ROCm platform. ROCm-CMake is not required for building libraries or programs that use ROCm;
+it is required for building some of the libraries that are a part of ROCm.")
+ (home-page "https://github.com/RadeonOpenCompute/rocm-cmake.git")
+ (license expat)))
+
+(define-public rocm-cmake
+ (make-rocm-cmake rocm-version-latest))
diff --git a/amd/packages/rocm-libs.scm b/amd/packages/rocm-libs.scm
new file mode 100644
index 0000000..9d9ef41
--- /dev/null
+++ b/amd/packages/rocm-libs.scm
@@ -0,0 +1,685 @@
+;;; Copyright © 2023 Advanced Micro Devices, Inc.
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (amd packages rocm-libs)
+ #:use-module (guix packages)
+ #:use-module (guix gexp)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix git-download)
+ #:use-module (guix download)
+ #:use-module (guix licenses)
+ #:use-module (guix build utils)
+ #:use-module (guix utils)
+
+ #:use-module (gnu packages)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages gcc)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages debug)
+ #:use-module (gnu packages pciutils)
+ #:use-module (gnu packages pretty-print)
+ #:use-module (gnu packages version-control)
+ #:use-module (gnu packages sqlite)
+
+ #:use-module (amd packages rocm-origin)
+ #:use-module (amd packages rocm-base)
+ #:use-module (amd packages rocm-hip)
+ #:use-module (amd packages rocm-tools)
+
+ #:use-module (gnu packages mpi)
+
+ #:use-module (gnu packages fabric-management))
+
+; rocdbg-api
+(define (make-rocdbg-api rocm-comgr hipamd)
+ (package
+ (name "rocdbg-api")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin "rocdbgapi" version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:build-type "Release"
+ #:configure-flags #~(list (string-append "-DPCI_IDS_PATH="
+ #$(this-package-input "hwdata")))))
+ (inputs (list libbacktrace hwdata rocm-comgr hipamd))
+ (synopsis "ROCm debugger API.")
+ (description
+ "The AMD Debugger API is a library that provides all the support necessary for a debugger
+and other tools to perform low level control of the execution and inspection of execution state
+of AMD's commercially available GPU architectures.")
+ (home-page "https://github.com/ROCm/ROCdbgapi")
+ (license expat)))
+
+(define-public rocdbg-api
+ (make-rocdbg-api llvm-comgr hipamd))
+
+; rocprim
+(define (make-rocprim rocm-cmake hipamd)
+ (package
+ (name "rocprim")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Release"
+ #:tests? #f ;No tests.
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$(this-package-input "hipamd")
+ "/bin/hipcc"))))
+ (inputs (list hipamd))
+ (native-inputs (list rocm-cmake python-wrapper))
+ (synopsis
+ "rocPRIM: a header-only library providing HIP parallel primitives")
+ (description
+ "The rocPRIM is a header-only library providing HIP parallel primitives
+for developing performant GPU-accelerated code on the AMD ROCm platform.")
+ (home-page "https://github.com/ROCmSoftwarePlatform/rocPRIM.git")
+ (license expat)))
+
+(define-public rocprim
+ (make-rocprim rocm-cmake hipamd))
+
+; hipcub
+(define-public (make-hipcub hipamd rocm-cmake rocprim)
+ (package
+ (name "hipcub")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:build-type "Release"
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc")
+ "-DAMDGPU_TARGETS=gfx90a,gfx1030,gfx1100")))
+ (inputs (list hipamd rocprim))
+ (native-inputs (list rocm-cmake))
+ (synopsis "hipCUB is a HIP wrapper for rocPRIM.")
+ (description
+ "hipCUB is a thin wrapper library on top of rocPRIM or CUB. You can use it to port a
+CUB project into HIP so you can use AMD hardware (and ROCm software).")
+ (home-page "https://github.com/ROCm/hipCUB")
+ (license bsd-3)))
+
+(define-public hipcub
+ (make-hipcub hipamd rocm-cmake rocprim))
+
+; rccl
+(define-public (make-rccl hipamd rocm-cmake rocm-smi hipify)
+ (package
+ (name "rccl")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:build-type "Release"
+ #:configure-flags #~(list (string-append "-DROCM_PATH="
+ #$(this-package-input "hipamd"))
+ (string-append "-DCMAKE_CXX_COMPILER="
+ #$(this-package-input "hipamd")
+ "/bin/hipcc")
+ "-DAMDGPU_TARGETS=gfx90a,gfx1030,gfx1100")
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'configure 'parallel-jobs
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("target_compile_options\\(rccl PRIVATE -parallel-jobs=.*\\)")
+ "target_compile_options(rccl PRIVATE -parallel-jobs=1)")
+ (("target_link_options\\(rccl PRIVATE -parallel-jobs=.*\\)")
+ "target_link_options(rccl PRIVATE -parallel-jobs=4)")))))))
+ (inputs (list hipamd rocm-smi))
+ (native-inputs (list rocm-cmake hipify))
+ (properties '((max-silent-time . 14400)))
+ (synopsis "ROCm Communication Collectives Library")
+ (description
+ "RCCL (pronounced \"Rickle\") is a stand-alone library of standard collective communication
+routines for GPUs, implementing all-reduce, all-gather, reduce, broadcast, reduce-scatter, gather,
+scatter, and all-to-all. There is also initial support for direct GPU-to-GPU send and receive operations.
+It has been optimized to achieve high bandwidth on platforms using PCIe, xGMI as well as networking using
+InfiniBand Verbs or TCP/IP sockets. RCCL supports an arbitrary number of GPUs installed in a single node
+or multiple nodes, and can be used in either single- or multi-process (e.g., MPI) applications.")
+ (home-page "https://github.com/ROCm/rccl")
+ (license bsd-3)))
+
+(define-public rccl
+ (make-rccl hipamd rocm-cmake rocm-smi hipify))
+
+; rocthrust
+(define (make-rocthrust hipamd rocm-cmake rocprim)
+ (package
+ (name "rocthrust")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc"))))
+ (inputs (list rocprim hipamd))
+ (native-inputs (list rocm-cmake))
+ (synopsis "rocThrust is a parallel algorithm library.")
+ (description
+ "rocThrust is a parallel algorithm library that has been ported to HIP and ROCm,
+which uses the rocPRIM library. The HIP-ported library works on HIP and ROCm software.")
+ (home-page "https://github.com/ROCm/rocThrust.git")
+ (license asl2.0)))
+
+(define-public rocthrust
+ (make-rocthrust hipamd rocm-cmake rocprim))
+
+; rocsparse
+(define (make-rocsparse rocm-cmake hipamd rocm-device-libs rocr-runtime
+ rocprim)
+ (package
+ (name "rocsparse")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:configure-flags #~(list "-DAMDGPU_TARGETS=gfx90a;gfx1030,gfx1100"
+ (string-append "-DCMAKE_CXX_COMPILER="
+ #$(this-package-input "hipamd")
+ "/bin/hipcc")
+ (string-append "-DCMAKE_Fortran_COMPILER="
+ #$(this-package-native-input
+ "gfortran") "/bin/gfortran")
+ "-DBUILD_CLIENTS_SAMPLES:BOOL=OFF" ;build fails otherwise
+ )))
+ (native-inputs (list git gfortran rocm-cmake python-wrapper))
+ (inputs (list hipamd rocm-device-libs rocr-runtime rocprim))
+ (synopsis "rocSPARSE provides an interface for sparse BLAS operations.")
+ (description
+ "rocSPARSE exposes a common interface that provides Basic Linear Algebra Subroutines (BLAS)
+for sparse computation. It's implemented on top of AMD ROCm runtime and toolchains. rocSPARSE is created using
+the HIP programming language and optimized for AMD's latest discrete GPUs.")
+ (home-page "https://github.com/ROCm/rocSPARSE.git")
+ (license expat)))
+
+(define-public rocsparse
+ (make-rocsparse rocm-cmake hipamd llvm-device-libs rocr-runtime rocprim))
+
+; hipsparse
+(define-public (make-hipsparse hipamd rocm-cmake rocsparse)
+ (package
+ (name "hipsparse")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:build-type "Release"
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc")
+ "-DBUILD_CLIENTS_SAMPLES:BOOL=OFF" ;build fails otherwise
+ "-DAMDGPU_TARGETS=gfx90a,gfx1030,gfx1100")))
+ (inputs (list hipamd rocsparse))
+ (native-inputs (list git gfortran rocm-cmake))
+ (synopsis "A HIP interface to rocSPARSE.")
+ (description
+ "hipSPARSE is a SPARSE marshalling library with multiple supported backends.
+It sits between your application and a 'worker' SPARSE library, where it marshals inputs to the backend
+library and marshals results to your application. hipSPARSE exports an interface that doesn't require the
+client to change, regardless of the chosen backend. Currently, hipSPARSE supports rocSPARSE and cuSPARSE
+backends.")
+ (home-page "https://github.com/ROCm/hipSPARSE.git")
+ (license expat)))
+
+(define-public hipsparse
+ (make-hipsparse hipamd rocm-cmake rocsparse))
+
+; libfabric built with rocm
+(define (make-ofi-rocm rocr-runtime)
+ (package/inherit libfabric
+ (name "libfabric-rocm")
+ (version (string-append (package-version libfabric) ".rocm"
+ (package-version rocr-runtime)))
+
+ (arguments (substitute-keyword-arguments (package-arguments libfabric)
+ ((#:configure-flags flags)
+ #~(append (list (string-append "--with-rocr="
+ #$rocr-runtime))
+ #$flags))))
+ (inputs (modify-inputs (package-inputs libfabric)
+ (append rocr-runtime)))))
+
+(define-public ofi-rocm
+ (make-ofi-rocm rocr-runtime))
+
+; ucx built with rocm
+(define (make-ucx-rocm roct-thunk rocr-runtime hipamd)
+ (package/inherit ucx
+ (name "ucx-rocm")
+ (version (string-append (package-version ucx) ".rocm"
+ (package-version hipamd)))
+ (arguments (substitute-keyword-arguments (package-arguments ucx)
+ ((#:configure-flags flags)
+ #~(append (list "--without-cuda" "--without-knem"
+ "--without-java"
+ (string-append "--with-rocm="
+ #$(this-package-input
+ "rocr-runtime"))
+ (string-append "--with-hip="
+ #$(this-package-input
+ "hipamd")))
+ #$flags))))
+ (native-inputs (modify-inputs (package-native-inputs ucx)
+ (append roct-thunk)))
+ (inputs (modify-inputs (package-inputs ucx)
+ (append hipamd)
+ (append rocr-runtime)))
+ (properties `((tunable? . #t) ,@(package-properties ucx)))))
+
+(define-public ucx-rocm
+ (make-ucx-rocm roct-thunk rocr-runtime hipamd))
+
+; openmpi built with ucx-rocm and libfabric-rocm
+(define (make-openmpi-rocm ucx ofi hipamd)
+ (package/inherit openmpi
+ (name (string-append (package-name openmpi) "-rocm"))
+ (version (string-append (package-version openmpi) ".rocm"
+ (package-version hipamd)))
+ (arguments (substitute-keyword-arguments (package-arguments openmpi)
+ ((#:configure-flags flags)
+ #~(append (list (string-append "--with-rocm="
+ #$(this-package-input
+ "hipamd"))
+ (string-append "--with-ofi="
+ #$(this-package-input
+ "libfabric")))
+ #$flags))
+ ((#:phases phases
+ '%standard-phases)
+ #~(modify-phases #$phases
+ ;; opensm is needed for InfiniBand support.
+ (add-after 'unpack 'find-opensm-headers
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "C_INCLUDE_PATH"
+ (search-input-directory inputs
+ "/include/infiniband"))
+ (setenv "CPLUS_INCLUDE_PATH"
+ (search-input-directory inputs
+ "/include/infiniband"))))))))
+ (inputs (modify-inputs (package-inputs openmpi)
+ (replace "ucx" ucx)
+ (replace "libfabric" ofi)
+ (append hipamd)))))
+
+(define-public openmpi-rocm
+ (make-openmpi-rocm ucx-rocm ofi-rocm hipamd))
+
+; roctracer
+(define (make-roctracer hipamd)
+ (package
+ (name "roctracer")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:build-type "Release"
+ #:configure-flags #~(list (string-append "-DROCM_PATH="
+ #$hipamd)
+ #$(if (version>=? version "5.5.0") ""
+ "-DCMAKE_CXX_COMPILER=g++"))
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'update-filesystem
+ ;; only needed from 5.5 onwards
+ (lambda _
+ (substitute* (append (find-files "." ".cpp$")
+ (find-files "." ".h$"))
+ (("std::experimental::filesystem")
+ "std::filesystem")
+ (("<experimental/filesystem>")
+ "<filesystem>")))))))
+ (inputs (list numactl hipamd python python-cppheaderparser))
+ (synopsis "A callback/activity library for performance tracing AMD GPUs.")
+ (description
+ "ROCm tracer provides an API to provide functionality for registering
+the runtimes API callbacks and asynchronous activity records pool support.")
+ (home-page "https://github.com/ROCm/roctracer")
+ (license expat)))
+
+(define-public roctracer
+ (make-roctracer hipamd))
+
+; rocblas
+(define (make-rocblas tensile rocm-cmake hipamd)
+ (package
+ (name "rocblas")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:build-type "Release"
+ #:tests? #f
+ #:validate-runpath? #f
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc")
+ (string-append "-DTensile_CPU_THREADS="
+ (number->string (parallel-job-count)))
+ "-DBUILD_WITH_PIP=OFF"
+ (if (string=? #$version "5.3.3")
+ "-DCMAKE_TOOLCHAIN_FILE=toolchain-linux.cmake"
+ "") "-DAMDGPU_TARGETS=gfx1100;gfx1030;gfx90a")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
+ ;; only needed for version<=5.4
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define cplus-include-path
+ ;; Delete glibc/include and gcc/include/c++ from CPLUS_INCLUDE_PATH
+ ;; to allow clang to include the cuda_wrappers first.
+ (delete (string-append (assoc-ref inputs "libc")
+ "/include")
+ (delete (string-append (assoc-ref inputs
+ "gcc")
+ "/include/c++")
+ (string-split (getenv
+ "CPLUS_INCLUDE_PATH")
+ #\:))))
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-join cplus-include-path ":")))))))
+ (native-inputs (list python-wrapper tensile hipamd rocm-cmake))
+ (properties '((max-silent-time . 14400)))
+ (synopsis "Next generation BLAS implementation for ROCm platform.")
+ (description
+ "rocBLAS is the ROCm Basic Linear Algebra Subprograms (BLAS) library.
+rocBLAS is implemented in the HIP programming language and optimized for AMD GPUs.")
+ (home-page "https://github.com/ROCmSoftwarePlatform/rocBLAS.git")
+ (license (list expat bsd-3))))
+
+(define-public rocblas
+ (make-rocblas tensile rocm-cmake hipamd))
+
+; rocsolver
+(define (make-rocsolver hipamd rocm-cmake rocblas rocprim)
+ (package
+ (name "rocsolver")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:build-type "Release"
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc")
+ "-DBUILD_WITH_SPARSE=OFF"
+ "-DAMDGPU_TARGETS=gfx1100;gfx1030;gfx90a")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define cplus-include-path
+ ;; Delete glibc/include and gcc/include/c++ from CPLUS_INCLUDE_PATH
+ ;; to allow clang to include the cuda_wrappers first.
+ (delete (string-append (assoc-ref inputs "libc")
+ "/include")
+ (delete (string-append (assoc-ref inputs
+ "gcc")
+ "/include/c++")
+ (string-split (getenv
+ "CPLUS_INCLUDE_PATH")
+ #\:))))
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-join cplus-include-path ":")))))))
+ (inputs (list fmt-8 hipamd rocblas rocprim))
+ (native-inputs (list python-wrapper rocm-cmake))
+ (synopsis "rocSOLVER provides LAPACK operations for the ROCm platform.")
+ (description
+ "rocSOLVER is a work-in-progress implementation of a subset of LAPACK functionality
+on the ROCm platform.")
+ (home-page "https://github.com/ROCm/rocSOLVER.git")
+ (license (list bsd-2 bsd-3))))
+
+(define-public rocsolver
+ (make-rocsolver hipamd rocm-cmake rocblas rocprim))
+
+; hipblas
+(define-public (make-hipblas hipamd rocm-cmake rocblas rocsolver)
+ (package
+ (name "hipblas")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:build-type "Release"
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc")
+ "-DAMDGPU_TARGETS=gfx1100;gfx90a;gfx1030")))
+ (inputs (list gfortran hipamd rocblas rocsolver))
+ (native-inputs (list rocm-cmake))
+ (synopsis "hipBLAS is a HIP interface to rocBLAS.")
+ (description
+ "hipBLAS is a Basic Linear Algebra Subprograms (BLAS) marshalling library with multiple
+supported backends. It sits between your application and a 'worker' BLAS library, where it marshals inputs to
+the backend library and marshals results to your application. hipBLAS exports an interface that doesn't
+require the client to change, regardless of the chosen backend. Currently, hipBLAS supports rocBLAS and
+cuBLAS backends.")
+ (home-page "https://github.com/ROCm/hipBLAS.git")
+ (license (list bsd-3 expat))))
+
+(define-public hipblas
+ (make-hipblas hipamd rocm-cmake rocblas rocsolver))
+
+; rocrand
+(define-public (make-rocrand hipamd rocm-cmake)
+ (package
+ (name "rocrand")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version
+ #:recursive? #f))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:build-type "Release"
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc")
+ (string-append
+ "-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath="
+ #$output "/lib") "-DBUILD_HIPRAND:BOOL=OFF"
+ "-DAMDGPU_TARGETS=gfx1100;gfx90a;gfx1030")))
+ (inputs (list hipamd))
+ (native-inputs (list git rocm-cmake))
+ (synopsis "RAND library for HIP programming language.")
+ (description
+ "The rocRAND project provides functions that generate pseudorandom and quasirandom numbers.
+The rocRAND library is implemented in the HIP programming language and optimized for AMD's latest discrete GPUs.
+It is designed to run on top of AMD's ROCm runtime, but it also works on CUDA-enabled GPUs.")
+ (home-page "https://github.com/ROCm/rocRAND.git")
+ (license expat)))
+
+(define-public rocrand
+ (make-rocrand hipamd rocm-cmake))
+
+; hiprand
+(define-public (make-hiprand hipamd rocm-cmake rocrand)
+ (package
+ (name "hiprand")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:build-type "Release"
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc")
+ "-DAMDGPU_TARGETS=gfx90a,gfx1100,gfx1030")))
+ (inputs (list hipamd rocrand))
+ (native-inputs (list git rocm-cmake))
+ (synopsis "RAND library for HIP programming language.")
+ (description
+ "The rocRAND project provides functions that generate pseudorandom and quasirandom numbers.
+The rocRAND library is implemented in the HIP programming language and optimized for AMD's latest discrete GPUs.
+It is designed to run on top of AMD's ROCm runtime, but it also works on CUDA-enabled GPUs.")
+ (home-page "https://github.com/ROCm/rocRAND.git")
+ (license expat)))
+
+(define-public hiprand
+ (make-hiprand hipamd rocm-cmake rocrand))
+
+; rocalution
+(define-public (make-rocalution hipamd
+ rocm-cmake
+ rocsparse
+ rocblas
+ rocprim
+ rocrand)
+ (package
+ (name "rocalution")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:build-type "Release"
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc")
+ (string-append "-DROCM_PATH="
+ #$hipamd)
+ "-DAMDGPU_TARGETS=gfx1030;gfx90a;gfx1100"
+ "-DSUPPORT_HIP=ON"
+ "-DBUILD_CLIENTS_SAMPLES=OFF"
+ "-DBUILD_CLIENTS_TESTS=OFF"
+ "-DBUILD_CLIENTS_BENCHMARKS=OFF")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'set-paths 'adjust-CPLUS_INCLUDE_PATH
+ (lambda* (#:key inputs #:allow-other-keys)
+ (define cplus-include-path
+ ;; Delete glibc/include and gcc/include/c++ from CPLUS_INCLUDE_PATH
+ ;; to allow clang to include the cuda_wrappers first.
+ (delete (string-append (assoc-ref inputs "libc")
+ "/include")
+ (delete (string-append (assoc-ref inputs
+ "gcc")
+ "/include/c++")
+ (string-split (getenv
+ "CPLUS_INCLUDE_PATH")
+ #\:))))
+ (setenv "CPLUS_INCLUDE_PATH"
+ (string-join cplus-include-path ":")))))))
+ (inputs (list hipamd rocsparse rocblas rocprim rocrand))
+ (native-inputs (list git rocm-cmake))
+ (synopsis "rocALUTION is a sparse linear algebra library.")
+ (description
+ "rocALUTION is a sparse linear algebra library that can be used to explore fine-grained
+parallelism on top of the ROCm platform runtime and toolchains. Based on C++ and HIP, rocALUTION provides a
+portable, generic, and flexible design that allows seamless integration with other scientific software packages.")
+ (home-page "https://github.com/ROCm/rocALUTION.git")
+ (license expat)))
+
+(define-public rocalution
+ (make-rocalution hipamd
+ rocm-cmake
+ rocsparse
+ rocblas
+ rocprim
+ rocrand))
+
+; rocfft
+(define (make-rocfft hipamd rocm-cmake)
+ (package
+ (name "rocfft")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ ;; #:build-type "Release"
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc")
+ "-DSQLITE_USE_SYSTEM_PACKAGE:BOOL=ON"
+ "-DAMDGPU_TARGETS=gfx90a;gfx1030;gfx1100")))
+ (inputs (list hipamd))
+ (native-inputs (list rocm-cmake python-wrapper sqlite))
+ (properties '((max-silent-time . 14400)))
+ (synopsis "Fast Fourier transforms (FFTs) for ROCm.")
+ (description
+ "rocFFT is a software library for computing fast Fourier transforms (FFTs) written in
+the HIP programming language. It's part of AMD's software ecosystem based on ROCm. The rocFFT
+library can be used with AMD and NVIDIA GPUs.")
+ (home-page "https://github.com/ROCm/rocFFT")
+ (license expat)))
+
+(define-public rocfft
+ (make-rocfft hipamd rocm-cmake))
+
+; hipfft
+(define (make-hipfft hipamd rocm-cmake rocfft)
+ (package
+ (name "hipfft")
+ (version (package-version hipamd))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:configure-flags #~(list (string-append "-DCMAKE_CXX_COMPILER="
+ #$hipamd "/bin/hipcc")
+ (string-append "-DROCM_PATH="
+ #$hipamd)
+ "-DAMDGPU_TARGETS=gfx90a;gfx1030;gfx1100")))
+ (inputs (list hipamd rocfft))
+ (native-inputs (list git rocm-cmake)) ;python-wrapper
+ (synopsis "A HIP interface for rocFFT and cuFFT.")
+ (description
+ "hipFFT exports an interface that doesn't require the client to change, regardless of the
+chosen backend. It sits between your application and the backend FFT library, where it marshals
+inputs to the backend and marshals results back to your application.")
+ (home-page "https://github.com/ROCm/hipFFT")
+ (license expat)))
+
+(define-public hipfft
+ (make-hipfft hipamd rocm-cmake rocfft))
diff --git a/amd/packages/rocm-origin.scm b/amd/packages/rocm-origin.scm
new file mode 100644
index 0000000..f69b12b
--- /dev/null
+++ b/amd/packages/rocm-origin.scm
@@ -0,0 +1,447 @@
+;;; Copyright © 2024 Advanced Micro Devices, Inc.
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (amd packages rocm-origin)
+ #:use-module (guix packages)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix download)
+ #:use-module (guix utils)
+
+ #:use-module (gnu packages)
+
+ #:export (rocm-origin
+ rocm-version-latest
+ rocm-version-major-minor-latest))
+
+(define-public rocm-version-latest
+ ;; Default version for ROCm packages based on the latest release.
+ "6.2.2")
+
+(define-public rocm-version-major-minor-latest
+ (version-major+minor rocm-version-latest))
+
+(define rocm-hashes
+ `(
+ ; clr
+ (("clr" "6.2.2") . ,(base32 "1fmbf29ff6c74shsvk0dhgv6pxr708lmkmlf5n8hibz65n8g8msl"))
+ (("clr" "6.2.1") . ,(base32 "1fmbf29ff6c74shsvk0dhgv6pxr708lmkmlf5n8hibz65n8g8msl"))
+ (("clr" "6.2.0") . ,(base32 "16hhacrp45gvmv85nbfh6zamzyjl5hvkb1wjnl01sxnabrc35yl4"))
+ (("clr" "6.1.2") . ,(base32 "0q9nkxk5ll4mncr2m8d7bwkbl6ac3w74pzylak9yryhsgiqsk5ks"))
+ (("clr" "6.1.1") . ,(base32 "0wwb9sh12139qgsh8b9rbcx0aki1aipj6an0skvvpclf8fxampfr"))
+ (("clr" "6.0.2") . ,(base32 "0rl09h366qh2ggpg3m2d721drhcqwbrnajyh34ljgn4ny3p41jk4"))
+ (("clr" "6.0.0") . ,(base32 "1vi6qk8vhb0mf4rd6idchkpgr5jgz4646daprj2vdqlyp5krv205"))
+ (("clr" "5.7.1") . ,(base32 "1300wrbdjpswps8ds850rxy7yifcbwjfszys3x55fl2vy234j1nn"))
+ ; hip
+ (("hip" "6.2.2") . ,(base32 "08g0y1ma8czrbrmfd06gsqsc6dygddks2pqrvhrf0xhkqycc8dw6"))
+ (("hip" "6.2.1") . ,(base32 "08g0y1ma8czrbrmfd06gsqsc6dygddks2pqrvhrf0xhkqycc8dw6"))
+ (("hip" "6.2.0") . ,(base32 "0iw69byvnphlixm79169mqv4kkcbx4a45jwhgf6mw3s563i8vhc4"))
+ (("hip" "6.1.2") . ,(base32 "0nwyxl8i6ql12sf6rsj3zyk0cf1j00x7a7mpjnca9gllvq3lf03p"))
+ (("hip" "6.1.1") . ,(base32 "0v8cn9wmxg3r1pc2l1v09vjkvr4fsk5kp57iwdgb5d5pcwwmagzr"))
+ (("hip" "6.0.2") . ,(base32 "0d7v06sfwhx16xlkrriqpwnci89z0nkka999balb5q0i5l3vfnz7"))
+ (("hip" "6.0.0") . ,(base32 "048qj2gsi871hdsl24shzbpqx1j31gkxfla0ky1ws27fvcy8505d"))
+ (("hip" "5.7.1") . ,(base32 "0p7w17mv14xrn1dg98mss43haa1k5qz1bnn9ap10l2wrvavy41nl"))
+ ; hipblas
+ (("hipblas" "6.2.2") . ,(base32 "1jax43ax9blfg4mjnjrrvpsvw8ravrcabwj193hhx3ir26msc7d2"))
+ (("hipblas" "6.2.1") . ,(base32 "1jax43ax9blfg4mjnjrrvpsvw8ravrcabwj193hhx3ir26msc7d2"))
+ (("hipblas" "6.2.0") . ,(base32 "1jax43ax9blfg4mjnjrrvpsvw8ravrcabwj193hhx3ir26msc7d2"))
+ (("hipblas" "6.1.2") . ,(base32 "1nkw3fzr9sfppsc4wkr5mlgdh442b8hi0pnsw6p2py8ircdfk9j9"))
+ (("hipblas" "6.1.1") . ,(base32 "1nkw3fzr9sfppsc4wkr5mlgdh442b8hi0pnsw6p2py8ircdfk9j9"))
+ (("hipblas" "6.0.2") . ,(base32 "1h5i5j17a4y6laq9am2ak3yll7zymq7jf2nmpz4527i6qgdfibhn"))
+ (("hipblas" "6.0.0") . ,(base32 "1h5i5j17a4y6laq9am2ak3yll7zymq7jf2nmpz4527i6qgdfibhn"))
+ (("hipblas" "5.7.1") . ,(base32 "1s0vpyxwjv2618x4mda87rbl753sz9zif24q1c2clxinvxj89dk9"))
+ ; hipcc
+ (("hipcc" "6.0.2") . ,(base32 "0vmhrap7pfxq8qhr898i3py0pid6fzdbbgrlvbj16c2jwhvm1d7w"))
+ (("hipcc" "6.0.0") . ,(base32 "0vmhrap7pfxq8qhr898i3py0pid6fzdbbgrlvbj16c2jwhvm1d7w"))
+ (("hipcc" "5.7.1") . ,(base32 "0n5ra5biv2r5yjbzwf88vbfwc6cmswmqxfx8wn58kqambnfgm5cl"))
+ ; hipcub
+ (("hipcub" "6.2.2") . ,(base32 "0khhfwwmj1ch0js0vbv1xjslqaz6sl837m16f1462l92pkvc08gf"))
+ (("hipcub" "6.2.1") . ,(base32 "0khhfwwmj1ch0js0vbv1xjslqaz6sl837m16f1462l92pkvc08gf"))
+ (("hipcub" "6.2.0") . ,(base32 "0khhfwwmj1ch0js0vbv1xjslqaz6sl837m16f1462l92pkvc08gf"))
+ (("hipcub" "6.1.2") . ,(base32 "0xa79218gkikf82x7iz0bdfdhm782pm2mqfv99lh5c5ak6jf76bw"))
+ (("hipcub" "6.1.1") . ,(base32 "0xa79218gkikf82x7iz0bdfdhm782pm2mqfv99lh5c5ak6jf76bw"))
+ (("hipcub" "6.0.2") . ,(base32 "1dr28aya74s3iimyrhzbfwdnkpq280zb5ds1rhxbyj897n1da37i"))
+ (("hipcub" "6.0.0") . ,(base32 "1dr28aya74s3iimyrhzbfwdnkpq280zb5ds1rhxbyj897n1da37i"))
+ (("hipcub" "5.7.1") . ,(base32 "0mchafa6mcycwbp1v1an5w7pqk2yjsn1mcxl89vhs2bffc1l806a"))
+ ; hipfft
+ (("hipfft" "6.2.2") . ,(base32 "116n42xzy5rkvyx9glnmrk6gd0hd7yj01mpsbb2cacqi0py6ra72"))
+ (("hipfft" "6.2.1") . ,(base32 "116n42xzy5rkvyx9glnmrk6gd0hd7yj01mpsbb2cacqi0py6ra72"))
+ (("hipfft" "6.2.0") . ,(base32 "02brbxq6l1i5swzswizlm5x5xwj2gsfcj7ibbzdf2a70y258ix2j"))
+ (("hipfft" "6.1.2") . ,(base32 "05iblr9ap7gpqg5n72pdlbddmm4sa78p72sy769ks7nfj1ig82c2"))
+ (("hipfft" "6.1.1") . ,(base32 "05iblr9ap7gpqg5n72pdlbddmm4sa78p72sy769ks7nfj1ig82c2"))
+ (("hipfft" "6.0.2") . ,(base32 "0bd0ldhy0g3mqpzh28wc8mwb0mwjsq1la453k78mwxl9pi1csf0f"))
+ (("hipfft" "6.0.0") . ,(base32 "00ib238is7s04iazjb2cwd05dpsqjy5gdfm5wmiyf6gy7zs6i8gz"))
+ (("hipfft" "5.7.1") . ,(base32 "1azzv72q7l1ksfcvj3rzm2spb2v414l4s4iqyyqwlzaidxjyxlln"))
+ ; hipify
+ (("hipify" "6.2.2") . ,(base32 "0pdl8jy0bjiwmb2amndr8r8hwkdha2pydaxyx5dwd5a3hg6jk7m5"))
+ (("hipify" "6.2.1") . ,(base32 "0pdl8jy0bjiwmb2amndr8r8hwkdha2pydaxyx5dwd5a3hg6jk7m5"))
+ (("hipify" "6.2.0") . ,(base32 "1mn63fvvx16g4is0s0ln0cgakmiq94jw6kwr7agnii9qb6nllqgk"))
+ (("hipify" "6.1.2") . ,(base32 "1isdc5qv21f0x052m1n7f2xfqi3vbp88f5622hh2rklmfb40cjxh"))
+ (("hipify" "6.1.1") . ,(base32 "1q963b2cfbk29qf47pcd4jbbm5wab1h0j0kindjalm8w1wsps6q1"))
+ (("hipify" "6.0.2") . ,(base32 "03lhfc8flgp7ajdprg5a6x7l54vzwk6ws4i02zxh8lz1yfn9dp4w"))
+ (("hipify" "6.0.0") . ,(base32 "1hhfj0a19nmvxqyw0p2cgyr6af4acn487bp8i2j6kwzj46vhk855"))
+ (("hipify" "5.7.1") . ,(base32 "1llc51ah7dphvv9s46i7l8ay3q51dzxx7fvvs6ym16066makc94l"))
+ ; hiprand
+ (("hiprand" "6.2.2") . ,(base32 "10xa8br6q7cf1y1j09yls7sdbdg1rphd3r1il9scgqsfh06c77r6"))
+ (("hiprand" "6.2.1") . ,(base32 "03x1frv9ww0140cpgrv8is6yq9fpqlwprlgwrgnq1whwh9c9nnk2"))
+ (("hiprand" "6.2.0") . ,(base32 "0z5ny7f1si8ma823cx30jsrqpm1hv1hfhfgcfbm5arn98r7ic79l"))
+ (("hiprand" "6.1.2") . ,(base32 "172947v56za1hrlwa84xz0sq9wdcmmj97dhl072wp1ckqb340j2f"))
+ (("hiprand" "6.0.2") . ,(base32 "122wxlpbb267c2byckmznk0fdlqmarw88w2iklj93r0p2lxg6qdq"))
+ (("hiprand" "5.7.1") . ,(base32 "1gw40nn49nwq90mffkpy3fpyjv7z50ah7b90qhz84nw4x5zlc9c3"))
+ ; hipsolver
+ (("hipsolver" "6.2.2") . ,(base32 "0zdrbgqhfax2fhmhygiq7gl5g3qlkgz4vb2bmqdggv874bhdkyqc"))
+ (("hipsolver" "6.2.1") . ,(base32 "0zdrbgqhfax2fhmhygiq7gl5g3qlkgz4vb2bmqdggv874bhdkyqc"))
+ (("hipsolver" "6.2.0") . ,(base32 "1372d34ck89z5swjwmaan87ibzfwqgc71figh2f43x4ny35afv9g"))
+ (("hipsolver" "6.1.2") . ,(base32 "084fajg3npxsj6nb1ll1mbdrjq8jkgz4ggdp6lkp8fjjlfq289ip"))
+ (("hipsolver" "6.1.1") . ,(base32 "084fajg3npxsj6nb1ll1mbdrjq8jkgz4ggdp6lkp8fjjlfq289ip"))
+ (("hipsolver" "6.0.2") . ,(base32 "0kap6269qg7bszxqksj9rp9wxy2imbmn9hhid4k3jx8kzqxdmiw8"))
+ (("hipsolver" "6.0.0") . ,(base32 "0kap6269qg7bszxqksj9rp9wxy2imbmn9hhid4k3jx8kzqxdmiw8"))
+ (("hipsolver" "5.7.1") . ,(base32 "01xs958pxhr7ahjgqrjh93y0q6k1sdqcih7yxp7ppgbj7wza9gp5"))
+ ; hipsparse
+ (("hipsparse" "6.2.2") . ,(base32 "1f7zcqs6s4jncbmx594qxxswfxm2pw7h6rgs3ass1yg8x2vsm890"))
+ (("hipsparse" "6.2.1") . ,(base32 "1f7zcqs6s4jncbmx594qxxswfxm2pw7h6rgs3ass1yg8x2vsm890"))
+ (("hipsparse" "6.2.0") . ,(base32 "0i0z29w3988id7xvayc62z8k1nwmxfkkyyxnwgj3rrln2qshi2gh"))
+ (("hipsparse" "6.1.2") . ,(base32 "1zx2656mwb2r0dxfvr5q7ya61skh8miky5n42v40jncmzmjn7a3f"))
+ (("hipsparse" "6.1.1") . ,(base32 "1zx2656mwb2r0dxfvr5q7ya61skh8miky5n42v40jncmzmjn7a3f"))
+ (("hipsparse" "6.0.2") . ,(base32 "1mkqdk0hjflqmzw52y59crdnc2l74kjjcdwkrsgfiy3yh785nbky"))
+ (("hipsparse" "6.0.0") . ,(base32 "1mkqdk0hjflqmzw52y59crdnc2l74kjjcdwkrsgfiy3yh785nbky"))
+ (("hipsparse" "5.7.1") . ,(base32 "0fibcy7vycj75wirh4ivy4fhivfqcdlq02s4z3pqyc0rx9la065p"))
+ ; llvm-project
+ (("llvm-project" "6.2.2") . ,(base32 "15g9xz8c9xcdk52nfyad5g3sg9jfrh2xlpxrq4pfnxy9vsg53vs8"))
+ (("llvm-project" "6.2.1") . ,(base32 "15g9xz8c9xcdk52nfyad5g3sg9jfrh2xlpxrq4pfnxy9vsg53vs8"))
+ (("llvm-project" "6.2.0") . ,(base32 "03smwbqrrkmdc22j4bi7c6vq5mxmmlv96xnqnmd4fbm89r59sh6c"))
+ (("llvm-project" "6.1.2") . ,(base32 "1f1v00x7sqhlmdgj8frw5gynh6yiim44ks4b7779r2simrxvg5zs"))
+ (("llvm-project" "6.1.1") . ,(base32 "0fklnsk7j51201hbkz0hlmrq70h19wvddak8ignm0mf0292fhnlb"))
+ (("llvm-project" "6.0.2") . ,(base32 "18kzj29bv9l92krkl585q68a6y4b062ssm91m6926d0cpjb5lv5q"))
+ (("llvm-project" "6.0.0") . ,(base32 "1giww1s7iarbvckwn9gaylcwq02nz2mjbnrvlnjqhqqx1p57q5jd"))
+ (("llvm-project" "5.7.1") . ,(base32 "1bwqrsvl2gdygp8lqz25xifhmrqwmwjhjhdnc51dr7lc72f4ksfk"))
+ ; rccl
+ (("rccl" "6.2.2") . ,(base32 "11qapq9mzfxkr2sh0p2ycckf69mkll0f6mwih58l9dcjs6010h8v"))
+ (("rccl" "6.2.1") . ,(base32 "11qapq9mzfxkr2sh0p2ycckf69mkll0f6mwih58l9dcjs6010h8v"))
+ (("rccl" "6.2.0") . ,(base32 "0v0fz03s56k21jfy870fgis33mc5cyg3h5r7d85ixcrlk86pczd6"))
+ (("rccl" "6.1.2") . ,(base32 "1cr7fngr9g3rghrn840kdfqcnw1c822gd79igbx78l9vf4x60yql"))
+ (("rccl" "6.1.1") . ,(base32 "1v0papfm4scr4fliss33mqvc792yjx3q9gd50ccsbkqnkqh266a6"))
+ (("rccl" "6.0.2") . ,(base32 "0kf0gfazqy1z1rn7y8r7qzgi4y0nx8w70hdw03giw446pkisaa9v"))
+ (("rccl" "6.0.0") . ,(base32 "0kf0gfazqy1z1rn7y8r7qzgi4y0nx8w70hdw03giw446pkisaa9v"))
+ (("rccl" "5.7.1") . ,(base32 "1vvy5s0cmphvh7hr0qn0nz2snl2f9pk3rrcaka41j613z6xjhncw"))
+ ; rocalution
+ (("rocalution" "6.2.2") . ,(base32 "0sasjh5cyc41rwpdgw04l4nrsflxnc1m94y0prq5kx6nwgbch9p4"))
+ (("rocalution" "6.2.1") . ,(base32 "0sasjh5cyc41rwpdgw04l4nrsflxnc1m94y0prq5kx6nwgbch9p4"))
+ (("rocalution" "6.2.0") . ,(base32 "1gm7hvvxch2l6ygbnnk5adbzjzz7sbz65755a68sg6ayvnscv049"))
+ (("rocalution" "6.1.2") . ,(base32 "00y0ar97mmiqdzrrbq6sicpbmb0sprjaf5xyijpw8dbwr4al3rvp"))
+ (("rocalution" "6.1.1") . ,(base32 "00y0ar97mmiqdzrrbq6sicpbmb0sprjaf5xyijpw8dbwr4al3rvp"))
+ (("rocalution" "6.0.2") . ,(base32 "1dxm1h35nr1a2rda7lgr56lkd080qwpbmcc2y8ia7ad6il47xcws"))
+ (("rocalution" "6.0.0") . ,(base32 "1dxm1h35nr1a2rda7lgr56lkd080qwpbmcc2y8ia7ad6il47xcws"))
+ (("rocalution" "5.7.1") . ,(base32 "1vk6p6jn5ddpwg6lifjk4wjhb2nrhaamj2wgkaj8y2vcwqbajhgr"))
+ ; rocblas
+ (("rocblas" "6.2.2") . ,(base32 "0qszyx89viykpz19j38qfczsyixk8531r5mh97iciqf5n3nlgb4q"))
+ (("rocblas" "6.2.1") . ,(base32 "0qszyx89viykpz19j38qfczsyixk8531r5mh97iciqf5n3nlgb4q"))
+ (("rocblas" "6.2.0") . ,(base32 "0d72x1wych786gx1d1c8148cnjvrdhbc0l3dkk3jmyqp6xbwrbw9"))
+ (("rocblas" "6.1.2") . ,(base32 "1q1igpd837k94vx6qp6g5cpigpxc88f1x93g2v8h156368gscpsh"))
+ (("rocblas" "6.1.1") . ,(base32 "0rfvp6awg3j25ra75870xpyl36qiqsib3yv1lrvjp8j3kvv71y9z"))
+ (("rocblas" "6.0.2") . ,(base32 "0jbi9sx0bgdwqmix3m3aikjnch1s7qbdylfcqx6kfvf11gz1vbqv"))
+ (("rocblas" "6.0.0") . ,(base32 "0jbi9sx0bgdwqmix3m3aikjnch1s7qbdylfcqx6kfvf11gz1vbqv"))
+ (("rocblas" "5.7.1") . ,(base32 "1ffwdyn5f237ad2m4k8b2ah15s0g2jfd6hm9qsywnsrby31af0nz"))
+ ; rocdbgapi
+ (("rocdbgapi" "6.2.2") . ,(base32 "0jshnchp11rmraa34qaw5xmgjl959lmlqk6gliyspqxinackknls"))
+ (("rocdbgapi" "6.2.1") . ,(base32 "0jshnchp11rmraa34qaw5xmgjl959lmlqk6gliyspqxinackknls"))
+ (("rocdbgapi" "6.2.0") . ,(base32 "0jshnchp11rmraa34qaw5xmgjl959lmlqk6gliyspqxinackknls"))
+ (("rocdbgapi" "6.1.2") . ,(base32 "1n6hdkv9agws5yzj79bff1j32b43caz6h5v1nb4cjjxqxb4hl04k"))
+ (("rocdbgapi" "6.1.1") . ,(base32 "1n6hdkv9agws5yzj79bff1j32b43caz6h5v1nb4cjjxqxb4hl04k"))
+ (("rocdbgapi" "6.0.2") . ,(base32 "1i2jwydnvr0fbbjaac620fy2zkqy0ji7c7d4f9ig9dsidi75lb7q"))
+ (("rocdbgapi" "6.0.0") . ,(base32 "1i2jwydnvr0fbbjaac620fy2zkqy0ji7c7d4f9ig9dsidi75lb7q"))
+ (("rocdbgapi" "5.7.1") . ,(base32 "0p1zmsy552j780j5ppqihajy3ixbv15diyjwr8f5immsqj0yzid8"))
+ ; rocfft
+ (("rocfft" "6.2.2") . ,(base32 "0ssa1ifqyznrd5yl7icp8vlfvq02pdyqhpx6mzhxzczf98zmmxd9"))
+ (("rocfft" "6.2.1") . ,(base32 "0ssa1ifqyznrd5yl7icp8vlfvq02pdyqhpx6mzhxzczf98zmmxd9"))
+ (("rocfft" "6.2.0") . ,(base32 "0sc8xrn4rr9bzd8lsd0lhh38sa90rxc1d06ckn91nca96gci96f1"))
+ (("rocfft" "6.1.2") . ,(base32 "0gsj3lcgppjvppqrldiqgzxsdp0d7vv8rhjg71jww0k76x2lvzf2"))
+ (("rocfft" "6.1.1") . ,(base32 "0gsj3lcgppjvppqrldiqgzxsdp0d7vv8rhjg71jww0k76x2lvzf2"))
+ (("rocfft" "6.0.2") . ,(base32 "0xvw2q031ggbhdjr8m9yfh79hk7hdrc9ikd9aqy1sy86bv5yqs78"))
+ (("rocfft" "6.0.0") . ,(base32 "032jxp8vgm7qvlp74bbqm0c9lgxl6wirrrnrbqvb72mj6ypn25x3"))
+ (("rocfft" "5.7.1") . ,(base32 "1q6yfjvl62jhrl83a5mcj6l4n26ak08mlh9vaf6kyk8yg39s550r"))
+ ; rocgdb
+ (("rocgdb" "6.2.2") . ,(base32 "1y2q3gr11m790s88rk86x8hqsgjlk4bqa4lgp373dzips3c4cwgi"))
+ (("rocgdb" "6.2.1") . ,(base32 "1y2q3gr11m790s88rk86x8hqsgjlk4bqa4lgp373dzips3c4cwgi"))
+ (("rocgdb" "6.2.0") . ,(base32 "07c0pcbg5kifs0h1gyxsxkk81rs55k8xlgbf8zc48pw0fmwq18ym"))
+ (("rocgdb" "6.1.2") . ,(base32 "1chrxshq0355xaz60wcl5mqnwvffn57yl08cmb7cxns1jl2vixz3"))
+ (("rocgdb" "6.1.1") . ,(base32 "1chrxshq0355xaz60wcl5mqnwvffn57yl08cmb7cxns1jl2vixz3"))
+ (("rocgdb" "6.0.2") . ,(base32 "1bhwgbqs13ll82m17g31c452mchbz76qx224f7hd38qzr29zzrax"))
+ (("rocgdb" "6.0.0") . ,(base32 "1bhwgbqs13ll82m17g31c452mchbz76qx224f7hd38qzr29zzrax"))
+ (("rocgdb" "5.7.1") . ,(base32 "04gvap8bkrmgrkg005jy766jnlp50ri9sm99xb7xwmgbyjzgnm2f"))
+ ; rocm-cmake
+ (("rocm-cmake" "6.2.2") . ,(base32 "05dm7dgg4r5gqbz8sj360nnm348mqxr0fbj3gc0x32l8mw81szf5"))
+ (("rocm-cmake" "6.2.1") . ,(base32 "05dm7dgg4r5gqbz8sj360nnm348mqxr0fbj3gc0x32l8mw81szf5"))
+ (("rocm-cmake" "6.2.0") . ,(base32 "05dm7dgg4r5gqbz8sj360nnm348mqxr0fbj3gc0x32l8mw81szf5"))
+ (("rocm-cmake" "6.1.2") . ,(base32 "0rn9sgj7bgxhajy8b28afzvikfpz0wxsnbk2p25xc9bf1qzzw513"))
+ (("rocm-cmake" "6.1.1") . ,(base32 "0rn9sgj7bgxhajy8b28afzvikfpz0wxsnbk2p25xc9bf1qzzw513"))
+ (("rocm-cmake" "6.0.2") . ,(base32 "14vsqcxllgj7cd51z78fvb6wjzzqimr7xbafaw1rlhwf897xca59"))
+ (("rocm-cmake" "6.0.0") . ,(base32 "14vsqcxllgj7cd51z78fvb6wjzzqimr7xbafaw1rlhwf897xca59"))
+ (("rocm-cmake" "5.7.1") . ,(base32 "0dfhqffgmrbcyxyri2qxpyfdyf8b75bprvnq77q2g281kswg6n39"))
+ ; rocm-compilersupport
+ (("rocm-compilersupport" "6.0.2") . ,(base32 "0qknmf3qzi4m05lxnyw9wl094vl2nk6lr3isjx6g541yz59qsyzl"))
+ (("rocm-compilersupport" "6.0.0") . ,(base32 "1xl83g1am8fczd47y24icxr659bqmd82skyz3zsqr8nh44458pj9"))
+ (("rocm-compilersupport" "5.7.1") . ,(base32 "0p28jsbwjk19c4i6vwqkwgwpa4qkmqsgpyhhxsx3albnbz8wc7a0"))
+ ; rocm-device-libs
+ (("rocm-device-libs" "6.0.2") . ,(base32 "1d3c2fbcab9pkah9c3yc6gy7bq6i7516p7l19pb47p0956hvnwgd"))
+ (("rocm-device-libs" "6.0.0") . ,(base32 "1d3c2fbcab9pkah9c3yc6gy7bq6i7516p7l19pb47p0956hvnwgd"))
+ (("rocm-device-libs" "5.7.1") . ,(base32 "1xc4g5qb8x5hgnvrpzxqxqbsdnwaff1r12aqb8a84mmj5bznq701"))
+ ; rocm_bandwidth_test
+ (("rocm_bandwidth_test" "6.2.2") . ,(base32 "0swrjgr9rns5rfhf42dpjp5srndfcvi0p5jc4lsjymna5pz8d3dk"))
+ (("rocm_bandwidth_test" "6.2.1") . ,(base32 "0swrjgr9rns5rfhf42dpjp5srndfcvi0p5jc4lsjymna5pz8d3dk"))
+ (("rocm_bandwidth_test" "6.2.0") . ,(base32 "0swrjgr9rns5rfhf42dpjp5srndfcvi0p5jc4lsjymna5pz8d3dk"))
+ (("rocm_bandwidth_test" "6.1.2") . ,(base32 "0b5jrf87wa5dqmipdc4wmr63g31hhgn5ikcl6qgbb51w2gq0vvya"))
+ (("rocm_bandwidth_test" "6.1.1") . ,(base32 "0b5jrf87wa5dqmipdc4wmr63g31hhgn5ikcl6qgbb51w2gq0vvya"))
+ (("rocm_bandwidth_test" "6.0.2") . ,(base32 "1p9ldrk43imwl8bz5c4pxaxwwmipgqg7k3xzkph2jq7ji455v4zz"))
+ (("rocm_bandwidth_test" "6.0.0") . ,(base32 "1p9ldrk43imwl8bz5c4pxaxwwmipgqg7k3xzkph2jq7ji455v4zz"))
+ (("rocm_bandwidth_test" "5.7.1") . ,(base32 "1p9ldrk43imwl8bz5c4pxaxwwmipgqg7k3xzkph2jq7ji455v4zz"))
+ ; rocm_smi_lib
+ (("rocm_smi_lib" "6.2.2") . ,(base32 "1b4dw02wfjz104waf123jk99vjm12qapzpxrifc69hhbv0q98sc4"))
+ (("rocm_smi_lib" "6.2.1") . ,(base32 "1b4dw02wfjz104waf123jk99vjm12qapzpxrifc69hhbv0q98sc4"))
+ (("rocm_smi_lib" "6.2.0") . ,(base32 "04abxvma78dvk3nvh9ap6kvyb0n1w2h9d7bzyv1qk243x9h8c8qs"))
+ (("rocm_smi_lib" "6.1.2") . ,(base32 "0f73k2da53hwylwf9basmd8wla8wjcdsvrggh2ccv4z9lpy319wf"))
+ (("rocm_smi_lib" "6.1.1") . ,(base32 "1cr0my0nhj3k3zd837931gcdvpsa9wyvx7i1fk7rhylvapyfgx4s"))
+ (("rocm_smi_lib" "6.0.2") . ,(base32 "1w0v29288v4lph8lzjmkjmc3fzygwfsn81h9fcr63mggjj37cbkx"))
+ (("rocm_smi_lib" "6.0.0") . ,(base32 "14srslb19lwf25apqcyjyjlj6yda6mj830w5s5gcgb3lq49v7iaz"))
+ (("rocm_smi_lib" "5.7.1") . ,(base32 "0d9cacap0k8k7hmlfbpnrqbrj86pmxk3w1fl8ijglm8a3267i51m"))
+ ; rocminfo
+ (("rocminfo" "6.2.2") . ,(base32 "1hc6fdrdxb0147s335bbg7z9w00hgn42632s35fc97nkl55hvwvc"))
+ (("rocminfo" "6.2.1") . ,(base32 "1hc6fdrdxb0147s335bbg7z9w00hgn42632s35fc97nkl55hvwvc"))
+ (("rocminfo" "6.2.0") . ,(base32 "0x0l87741bar4gscj3p0kdjbp7f88kvqh2w96lliwwzdv95fmgsa"))
+ (("rocminfo" "6.1.2") . ,(base32 "0b8s8ppxm1vx9wlv2x552p03fhy5wscwzpbswggi8zgsscl4l2wn"))
+ (("rocminfo" "6.1.1") . ,(base32 "0b8s8ppxm1vx9wlv2x552p03fhy5wscwzpbswggi8zgsscl4l2wn"))
+ (("rocminfo" "6.0.2") . ,(base32 "1jrhddmn5s25vcf3bi6nd6bvl4i47g3bf7qy0adv2shw4h5iwi4k"))
+ (("rocminfo" "6.0.0") . ,(base32 "1jrhddmn5s25vcf3bi6nd6bvl4i47g3bf7qy0adv2shw4h5iwi4k"))
+ (("rocminfo" "5.7.1") . ,(base32 "1a6viq9i7hcjn7xfyswzg7ivb5sp577097fiplzf7znkl3dahcsk"))
+ ; rocprim
+ (("rocprim" "6.2.2") . ,(base32 "0vv6rvn55ysmsf9xcm1glf7gcgdcv8ywxhvnm9aqpw6ky8vlxmqb"))
+ (("rocprim" "6.2.1") . ,(base32 "0vv6rvn55ysmsf9xcm1glf7gcgdcv8ywxhvnm9aqpw6ky8vlxmqb"))
+ (("rocprim" "6.2.0") . ,(base32 "01ligmg6pwkb0dnj4iq6z3m860hzral01bcayw1nizfrl9kldqdh"))
+ (("rocprim" "6.1.2") . ,(base32 "0sj4r3jh1gvrjp5hjmbdpnd5545fl1qc7ginlpf1f52g18zq2rxq"))
+ (("rocprim" "6.1.1") . ,(base32 "0sj4r3jh1gvrjp5hjmbdpnd5545fl1qc7ginlpf1f52g18zq2rxq"))
+ (("rocprim" "6.0.2") . ,(base32 "1qrimz28pifqyp70w5jlqynq0cp1gg2fbp2spf09wgcimbdylswx"))
+ (("rocprim" "6.0.0") . ,(base32 "1qrimz28pifqyp70w5jlqynq0cp1gg2fbp2spf09wgcimbdylswx"))
+ (("rocprim" "5.7.1") . ,(base32 "0rawbvyilzb1swj03f03h56i0gs52cg9kbcyz591ipdgqmd0bsgs"))
+ ; rocprofiler
+ (("rocprofiler" "6.2.2") . ,(base32 "0d1ng0h44spkcblpvcpjg6hq6kx8pq300wh44cbx1makjxmm9w0f"))
+ (("rocprofiler" "6.2.1") . ,(base32 "0d1ng0h44spkcblpvcpjg6hq6kx8pq300wh44cbx1makjxmm9w0f"))
+ (("rocprofiler" "6.2.0") . ,(base32 "19k4q2z2fxspsmmmndx42wihx2ayi2hlypr0j1fskxc1l2smlwx1"))
+ (("rocprofiler" "6.1.2") . ,(base32 "0hl9xqjfnjf7hl6rr5j6wrlhqhryng7gx7cik1ixdxhqkalmfrmc"))
+ (("rocprofiler" "6.1.1") . ,(base32 "0hl9xqjfnjf7hl6rr5j6wrlhqhryng7gx7cik1ixdxhqkalmfrmc"))
+ (("rocprofiler" "6.0.2") . ,(base32 "0n8ah8m1kgdringn3q48kmqr973iabny6f5mfmlhc72w1vv30f6b"))
+ (("rocprofiler" "6.0.0") . ,(base32 "0n8ah8m1kgdringn3q48kmqr973iabny6f5mfmlhc72w1vv30f6b"))
+ (("rocprofiler" "5.7.1") . ,(base32 "0rjz7nkw17c1vc7sm72qbcsmjjn3m5byvxaz5h1p1vxyvh5zpkyn"))
+ ; rocprofiler-register
+ (("rocprofiler-register" "6.2.2") . ,(base32 "02cxwx3v71x2sdaffhfy5vnyq5fg9lr6n4995fryy2w4szw7qvzq"))
+ (("rocprofiler-register" "6.2.1") . ,(base32 "02cxwx3v71x2sdaffhfy5vnyq5fg9lr6n4995fryy2w4szw7qvzq"))
+ (("rocprofiler-register" "6.2.0") . ,(base32 "02cxwx3v71x2sdaffhfy5vnyq5fg9lr6n4995fryy2w4szw7qvzq"))
+ (("rocprofiler-register" "6.1.2") . ,(base32 "0q31813yw3vrbwmd0k5rf4ik1v2vcywld0qf59b62m2jkli56ghg"))
+ (("rocprofiler-register" "6.1.1") . ,(base32 "0q31813yw3vrbwmd0k5rf4ik1v2vcywld0qf59b62m2jkli56ghg"))
+ ; rocprofiler-sdk
+ (("rocprofiler-sdk" "6.2.2") . ,(base32 "0ijfyfsxdnwqdidy4v3kbrqhi1h3z1xg1i1dsssbvfx62y4z2r4q"))
+ (("rocprofiler-sdk" "6.2.1") . ,(base32 "0ijfyfsxdnwqdidy4v3kbrqhi1h3z1xg1i1dsssbvfx62y4z2r4q"))
+ (("rocprofiler-sdk" "6.2.0") . ,(base32 "1xlcdz9z51knpr1nm2q8jik02mvahi3pnprl8ch404n4nvaq5i25"))
+ ; rocr-runtime
+ (("rocr-runtime" "6.2.2") . ,(base32 "0dnx5xxyr7ppkg7fvnaasx29nd0hv23410in032fjlm7c18z04sm"))
+ (("rocr-runtime" "6.2.1") . ,(base32 "0dnx5xxyr7ppkg7fvnaasx29nd0hv23410in032fjlm7c18z04sm"))
+ (("rocr-runtime" "6.2.0") . ,(base32 "0164gdlygyhvpik3bdf9ykrb3q70vvwgjlnvvh7wfr4k4lin4b0m"))
+ (("rocr-runtime" "6.1.2") . ,(base32 "0g6m7by4ww72zkpq2mhjrsr8lsfg5indgvr90d1p8kfsl873021p"))
+ (("rocr-runtime" "6.1.1") . ,(base32 "1yh25avclnxwhx5mljf97ymhazny46vvmm78yv3n7wgsqlpvylsk"))
+ (("rocr-runtime" "6.0.2") . ,(base32 "00hjznlrxxkkp1s8vq4id7vac6bynvz0f67ngs7d88q7kvvhdly4"))
+ (("rocr-runtime" "6.0.0") . ,(base32 "00hjznlrxxkkp1s8vq4id7vac6bynvz0f67ngs7d88q7kvvhdly4"))
+ (("rocr-runtime" "5.7.1") . ,(base32 "02g53357i15d8laxlhvib7h01kfarlq8hyfm7rm3ii2wgrm23c0g"))
+ ; rocrand
+ (("rocrand" "6.2.2") . ,(base32 "1jc66rn63dqmbcf1kr8j00djp0in54hpkmq0a4niffnji6hrmc5i"))
+ (("rocrand" "6.2.1") . ,(base32 "09f5ymw3983wkcc9sbra184wgpjccb7xmp7bp6dxhyn39nk3c9nz"))
+ (("rocrand" "6.2.0") . ,(base32 "09f5ymw3983wkcc9sbra184wgpjccb7xmp7bp6dxhyn39nk3c9nz"))
+ (("rocrand" "6.1.2") . ,(base32 "0q2fc8pr3my4v58dxgdi63a39dclgi4403vzp3z0hpjs6l8pnm0f"))
+ (("rocrand" "6.1.1") . ,(base32 "0q2fc8pr3my4v58dxgdi63a39dclgi4403vzp3z0hpjs6l8pnm0f"))
+ (("rocrand" "6.0.2") . ,(base32 "0rcs7wjz27hxhxdr5bs69yfg0b16l93llviw8771vkpywdh1q684"))
+ (("rocrand" "6.0.0") . ,(base32 "1x7nwsrs1fd8b2vrdq80bd415qvlrp8zrwl235af1g87jl0kia8y"))
+ (("rocrand" "5.7.1") . ,(base32 "1dc5nj36wkyndkir4b89pvi3v3dwh28v4ici7iln6hg46bzd63nq"))
+ ; rocsolver
+ (("rocsolver" "6.2.2") . ,(base32 "0r3finx2g4qva73pw32vxvgwykj7lrgkk9cy7mn9iy3w2sng4j3x"))
+ (("rocsolver" "6.2.1") . ,(base32 "0r3finx2g4qva73pw32vxvgwykj7lrgkk9cy7mn9iy3w2sng4j3x"))
+ (("rocsolver" "6.2.0") . ,(base32 "0zdf412kyrr7ibsrfn71dakl75k84snq0jpy5phrfbx5xxqs6lg3"))
+ (("rocsolver" "6.1.2") . ,(base32 "1h23k9r6ghdb6l0v7yscyfss076jq0gm17wz24nqylxp3h5g85z6"))
+ (("rocsolver" "6.1.1") . ,(base32 "1h23k9r6ghdb6l0v7yscyfss076jq0gm17wz24nqylxp3h5g85z6"))
+ (("rocsolver" "6.0.2") . ,(base32 "0yh12fmd23a6i664vr3wvb3isljls2y2dqj0p18h054j02km02dn"))
+ (("rocsolver" "6.0.0") . ,(base32 "0yh12fmd23a6i664vr3wvb3isljls2y2dqj0p18h054j02km02dn"))
+ (("rocsolver" "5.7.1") . ,(base32 "1gls5k6m3xzzivps2l69qcrb9b4kvmwm3ak44zgjk930ifds66db"))
+ ; rocsparse
+ (("rocsparse" "6.2.2") . ,(base32 "1s1lz30kjpg8zd0n88ifd0h9dgv7qvhflf5g34ijms1pwcvj1ldr"))
+ (("rocsparse" "6.2.1") . ,(base32 "1s1lz30kjpg8zd0n88ifd0h9dgv7qvhflf5g34ijms1pwcvj1ldr"))
+ (("rocsparse" "6.2.0") . ,(base32 "1s1lz30kjpg8zd0n88ifd0h9dgv7qvhflf5g34ijms1pwcvj1ldr"))
+ (("rocsparse" "6.1.2") . ,(base32 "0j8ncvfr1gqgxdsbcsxqg1br8m2v4whb8kkw5qh4mqs3szppy4ys"))
+ (("rocsparse" "6.1.1") . ,(base32 "0j8ncvfr1gqgxdsbcsxqg1br8m2v4whb8kkw5qh4mqs3szppy4ys"))
+ (("rocsparse" "6.0.2") . ,(base32 "0x0096xkyk1qlsk9xy8wnkq6whmax5sy08z30lisvdhkg482fdlx"))
+ (("rocsparse" "6.0.0") . ,(base32 "1q2j6i8zna4vvrcrwy2kcnyj7r5p8hjn9pl28rhrhgn8vh3dpdp5"))
+ (("rocsparse" "5.7.1") . ,(base32 "17qp4qhhlp30z57r43irqj734zk7pq0lq5s3ms6lc98rm1pbsjnz"))
+ ; roct-thunk-interface
+ (("roct-thunk-interface" "6.2.2") . ,(base32 "04n9w0vbklv7vfb6qzpsx06mc8dgzxfgbqiykqm1v8pp786w2v10"))
+ (("roct-thunk-interface" "6.2.1") . ,(base32 "04n9w0vbklv7vfb6qzpsx06mc8dgzxfgbqiykqm1v8pp786w2v10"))
+ (("roct-thunk-interface" "6.2.0") . ,(base32 "0zahlp61lkwcs27lgb0rbvxaxgpfkaz1f715j075whmzvsfp9kj1"))
+ (("roct-thunk-interface" "6.1.2") . ,(base32 "0nzz1nj6hahi5m21jsjx0ryzndqnvsgd4v0i4qp7s7isgra40s40"))
+ (("roct-thunk-interface" "6.1.1") . ,(base32 "0nzz1nj6hahi5m21jsjx0ryzndqnvsgd4v0i4qp7s7isgra40s40"))
+ (("roct-thunk-interface" "6.0.2") . ,(base32 "068yk5ll5c62m8crf2d482pqly4y3jg7x4l5gdv2rfa31zw2590p"))
+ (("roct-thunk-interface" "6.0.0") . ,(base32 "068yk5ll5c62m8crf2d482pqly4y3jg7x4l5gdv2rfa31zw2590p"))
+ (("roct-thunk-interface" "5.7.1") . ,(base32 "075advkplqlj9y3m3bsww4yiz3qxrfmxwhcf0giaa9dzrn9020wc"))
+ ; rocthrust
+ (("rocthrust" "6.2.2") . ,(base32 "08825v4daa5ig9f3dvscgh7kvk5xclzrkbrki3bc7d28xm5kxxdw"))
+ (("rocthrust" "6.2.1") . ,(base32 "08825v4daa5ig9f3dvscgh7kvk5xclzrkbrki3bc7d28xm5kxxdw"))
+ (("rocthrust" "6.2.0") . ,(base32 "11wjgl5b130g4cr2gipfgjgiqh6rczwysqpcpn12x2iv2r3hsfq5"))
+ (("rocthrust" "6.1.2") . ,(base32 "09irjpbwh2ggfjwcipgxqwpbnq00h2dzgcrykp365pddmmxjfkqd"))
+ (("rocthrust" "6.1.1") . ,(base32 "09irjpbwh2ggfjwcipgxqwpbnq00h2dzgcrykp365pddmmxjfkqd"))
+ (("rocthrust" "6.0.2") . ,(base32 "16m4j29aj0wkjwzynw3ry0xmjk1pjv35yhnlqwdkas4xqz2wakk6"))
+ (("rocthrust" "6.0.0") . ,(base32 "16m4j29aj0wkjwzynw3ry0xmjk1pjv35yhnlqwdkas4xqz2wakk6"))
+ (("rocthrust" "5.7.1") . ,(base32 "01zmy4gsd02w6gsah91458kbyl7kcvw3ffw2f09kl89v1xq0gdzr"))
+ ; roctracer
+ (("roctracer" "6.2.2") . ,(base32 "0ggkazbn8hfxgijqiy7k565y7zlgljnk0jpmb2dmzmy3l665kam6"))
+ (("roctracer" "6.2.1") . ,(base32 "0ggkazbn8hfxgijqiy7k565y7zlgljnk0jpmb2dmzmy3l665kam6"))
+ (("roctracer" "6.2.0") . ,(base32 "0ggkazbn8hfxgijqiy7k565y7zlgljnk0jpmb2dmzmy3l665kam6"))
+ (("roctracer" "6.1.2") . ,(base32 "1sh22vhx7para0ymqgskfl5hslbinxaccillals54pf9dplwvbvb"))
+ (("roctracer" "6.1.1") . ,(base32 "1sh22vhx7para0ymqgskfl5hslbinxaccillals54pf9dplwvbvb"))
+ (("roctracer" "6.0.2") . ,(base32 "1sh22vhx7para0ymqgskfl5hslbinxaccillals54pf9dplwvbvb"))
+ (("roctracer" "6.0.0") . ,(base32 "1sh22vhx7para0ymqgskfl5hslbinxaccillals54pf9dplwvbvb"))
+ (("roctracer" "5.7.1") . ,(base32 "11bd53vylassbg0xcpa9hncvwrv0xcb04z51b12h2iyc1341i91z"))
+ ; tensile
+ (("tensile" "6.2.2") . ,(base32 "0jxbhpnxmg27908x8yn33r1ljbbxinng5j7v868s4pci9gbdkxxl"))
+ (("tensile" "6.2.1") . ,(base32 "0jxbhpnxmg27908x8yn33r1ljbbxinng5j7v868s4pci9gbdkxxl"))
+ (("tensile" "6.2.0") . ,(base32 "0jxbhpnxmg27908x8yn33r1ljbbxinng5j7v868s4pci9gbdkxxl"))
+ (("tensile" "6.1.2") . ,(base32 "1b5m6cjgmvcmahkj6mgzzxxg47fmnn74j9jj6dr1kfgxlaj78qmz"))
+ (("tensile" "6.1.1") . ,(base32 "1b5m6cjgmvcmahkj6mgzzxxg47fmnn74j9jj6dr1kfgxlaj78qmz"))
+ (("tensile" "6.0.2") . ,(base32 "0dwlwlww4s89kzynq9rzlx0zijsvpjh0hx9bxb5h11sw1lizdpq7"))
+ (("tensile" "6.0.0") . ,(base32 "0dwlwlww4s89kzynq9rzlx0zijsvpjh0hx9bxb5h11sw1lizdpq7"))
+ (("tensile" "5.7.1") . ,(base32 "0visjmv63fmk8ywqjfcfvfbsr5784pmv83gsff4xppgrry4cc8qb"))
+ )
+)
+
+(define rocm-patches
+ `(
+ ; llvm-project
+ (("llvm-project" "6.2.2") . ("amd/packages/patches/llvm-rocm-6.2.0.patch"
+ ;; upstream patches for llvm 18.1.8
+ "clang-18.0-libc-search-path.patch"
+ "clang-17.0-link-dsymutil-latomic.patch"))
+ (("llvm-project" "6.2.1") . ("amd/packages/patches/llvm-rocm-6.2.0.patch"
+ ;; upstream patches for llvm 18.1.8
+ "clang-18.0-libc-search-path.patch"
+ "clang-17.0-link-dsymutil-latomic.patch"))
+ (("llvm-project" "6.2.0") . ("amd/packages/patches/llvm-rocm-6.2.0.patch"
+ ;; upstream patches for llvm 18.1.8
+ "clang-18.0-libc-search-path.patch"
+ "clang-17.0-link-dsymutil-latomic.patch"))
+ (("llvm-project" "6.1.2") . ("amd/packages/patches/llvm-rocm-6.1.1.patch"
+ ;; upstream patches for llvm 17.0.6
+ ;; "clang-17.0-libc-search-path.patch" does not apply cleanly
+ "clang-17.0-link-dsymutil-latomic.patch"))
+ (("llvm-project" "6.1.1") . ("amd/packages/patches/llvm-rocm-6.1.1.patch"
+ ;; upstream patches for llvm 17.0.6
+ ;; "clang-17.0-libc-search-path.patch" does not apply cleanly
+ "clang-17.0-link-dsymutil-latomic.patch"))
+ (("llvm-project" "6.0.2") . ("amd/packages/patches/llvm-rocm-5.7.1.patch"
+ ;; upstream patches for llvm 17.0.6
+ ;; "clang-17.0-libc-search-path.patch" does not apply cleanly
+ "clang-17.0-link-dsymutil-latomic.patch"))
+ (("llvm-project" "6.0.0") . ("amd/packages/patches/llvm-rocm-5.7.1.patch"
+ ;; upstream patches for llvm 17.0.6
+ ;; "clang-17.0-libc-search-path.patch" does not apply cleanly
+ "clang-17.0-link-dsymutil-latomic.patch"))
+ (("llvm-project" "5.7.1") . ("amd/packages/patches/llvm-rocm-5.7.1.patch"
+ ;; upstream patches for llvm 17.0.6
+ ;; "clang-17.0-libc-search-path.patch" does not apply cleanly
+ "clang-17.0-link-dsymutil-latomic.patch"))
+ ; hipify
+ (("hipify" "6.2.2") . ("amd/packages/patches/hipify-6.2.0.patch"))
+ (("hipify" "6.2.1") . ("amd/packages/patches/hipify-6.2.0.patch"))
+ (("hipify" "6.2.0") . ("amd/packages/patches/hipify-6.2.0.patch"))
+ ; rocprofiler-register
+ (("rocprofiler-sdk" "6.2.2") . ("amd/packages/patches/rocprof-sdk-6.2.0.patch"))
+ (("rocprofiler-sdk" "6.2.1") . ("amd/packages/patches/rocprof-sdk-6.2.0.patch"))
+ (("rocprofiler-sdk" "6.2.0") . ("amd/packages/patches/rocprof-sdk-6.2.0.patch"))
+ ; rocprofiler-register
+ (("rocprofiler-register" "6.2.2") . ("amd/packages/patches/rocprof-register-6.2.0.patch"))
+ (("rocprofiler-register" "6.2.1") . ("amd/packages/patches/rocprof-register-6.2.0.patch"))
+ (("rocprofiler-register" "6.2.0") . ("amd/packages/patches/rocprof-register-6.2.0.patch"))
+ (("rocprofiler-register" "6.1.2") . ("amd/packages/patches/rocprof-register-6.2.0.patch"))
+ ; rocr-runtime
+ (("rocr-runtime" "6.2.2") . ("amd/packages/patches/rocr-runtime-5.5.patch"))
+ (("rocr-runtime" "6.2.1") . ("amd/packages/patches/rocr-runtime-5.5.patch"))
+ (("rocr-runtime" "6.2.0") . ("amd/packages/patches/rocr-runtime-5.5.patch"))
+ (("rocr-runtime" "6.1.2") . ("amd/packages/patches/rocr-runtime-5.5.patch"))
+ (("rocr-runtime" "6.1.1") . ("amd/packages/patches/rocr-runtime-5.5.patch"))
+ (("rocr-runtime" "6.0.2") . ("amd/packages/patches/rocr-runtime-5.5.patch"))
+ (("rocr-runtime" "6.0.0") . ("amd/packages/patches/rocr-runtime-5.5.patch"))
+ (("rocr-runtime" "5.7.1") . ("amd/packages/patches/rocr-runtime-5.5.patch"))
+ ; hip
+ (("hip" "6.2.2") . ("amd/packages/patches/hip-headers-5.6.1.patch"))
+ (("hip" "6.2.1") . ("amd/packages/patches/hip-headers-5.6.1.patch"))
+ (("hip" "6.2.0") . ("amd/packages/patches/hip-headers-5.6.1.patch"))
+ (("hip" "6.1.2") . ("amd/packages/patches/hip-headers-5.6.1.patch"))
+ (("hip" "6.1.1") . ("amd/packages/patches/hip-headers-5.6.1.patch"))
+ (("hip" "6.0.2") . ("amd/packages/patches/hip-headers-5.6.1.patch"))
+ (("hip" "6.0.0") . ("amd/packages/patches/hip-headers-5.6.1.patch"))
+ (("hip" "5.7.1") . ("amd/packages/patches/hip-headers-5.6.1.patch"))
+ ; hipcc
+ (("hipcc" "6.0.2") . ("amd/packages/patches/hipcc-5.6.1.patch"))
+ (("hipcc" "6.0.0") . ("amd/packages/patches/hipcc-5.6.1.patch"))
+ (("hipcc" "5.7.1") . ("amd/packages/patches/hipcc-5.6.1.patch"))
+ ; hipamd (post rocm-5.5.X)
+ (("clr" "6.0.2") . ("amd/packages/patches/hipamd-5.6.1.patch"))
+ (("clr" "6.0.0") . ("amd/packages/patches/hipamd-5.6.1.patch"))
+ (("clr" "5.7.1") . ("amd/packages/patches/hipamd-5.6.1.patch"))
+ ; tensile
+ (("tensile" "6.2.2") . ("amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch"))
+ (("tensile" "6.2.1") . ("amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch"))
+ (("tensile" "6.2.0") . ("amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch"))
+ (("tensile" "6.1.2") . ("amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch"))
+ (("tensile" "6.1.1") . ("amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch"))
+ (("tensile" "6.0.2") . ("amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch"))
+ (("tensile" "6.0.0") . ("amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch"))
+ (("tensile" "5.7.1") . ("amd/packages/patches/tensile-5.3.3-copy-if-not-exist.patch"))
+ ; rocblas
+ (("rocblas" "6.2.2") . ("amd/packages/patches/rocblas-6.2.0.patch"))
+ (("rocblas" "6.2.1") . ("amd/packages/patches/rocblas-6.2.0.patch"))
+ (("rocblas" "6.2.0") . ("amd/packages/patches/rocblas-6.2.0.patch"))
+ ; hipblas
+ (("hipblas" "6.2.2") . ("amd/packages/patches/hipblas-6.2.0.patch"))
+ (("hipblas" "6.2.1") . ("amd/packages/patches/hipblas-6.2.0.patch"))
+ (("hipblas" "6.2.0") . ("amd/packages/patches/hipblas-6.2.0.patch"))
+ ; rocm-bandwidth-test
+ (("rocm_bandwidth_test" "6.1.2") . ("amd/packages/patches/rocm-bandwidth-test-reorg.patch"))
+ (("rocm_bandwidth_test" "6.1.1") . ("amd/packages/patches/rocm-bandwidth-test-reorg.patch"))
+ (("rocm_bandwidth_test" "6.0.2") . ("amd/packages/patches/rocm-bandwidth-test-reorg.patch"))
+ (("rocm_bandwidth_test" "6.0.0") . ("amd/packages/patches/rocm-bandwidth-test-reorg.patch"))
+ )
+)
+
+(define* (rocm-origin name version
+ #:key (recursive? #f))
+ "This procedure returns origin objects for ROCm components."
+ (origin
+ (method git-fetch)
+ (uri (git-reference (url (string-append "https://github.com/ROCm/" name))
+ (commit (string-append "rocm-" version))
+ (recursive? recursive?)))
+ (file-name (git-file-name name
+ (string-append "rocm-" version)))
+ (sha256 (assoc-ref rocm-hashes
+ (list name version)))
+ (patches (map search-patch
+ (or (assoc-ref rocm-patches
+ (list name version))
+ '())))))
diff --git a/amd/packages/rocm-tools.scm b/amd/packages/rocm-tools.scm
new file mode 100644
index 0000000..2b58017
--- /dev/null
+++ b/amd/packages/rocm-tools.scm
@@ -0,0 +1,131 @@
+;;; Copyright © 2023 Advanced Micro Devices, Inc.
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (amd packages rocm-tools)
+ #:use-module (guix packages)
+ #:use-module (guix gexp)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system python)
+ #:use-module (guix git-download)
+ #:use-module (guix licenses)
+
+ #:use-module (gnu packages)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages python-science)
+ #:use-module (gnu packages serialization)
+
+ #:use-module (amd packages rocm-origin)
+ #:use-module (amd packages rocm-base))
+
+; rocminfo
+(define (make-rocminfo rocr-runtime)
+ (package
+ (name "rocminfo")
+ (version (package-version rocr-runtime))
+ (source
+ (rocm-origin name version))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:build-type "Release"
+ #:tests? #f))
+ (inputs (list rocr-runtime python))
+ (propagated-inputs (list grep kmod))
+ (synopsis "ROCm application for reporting system info")
+ (description
+ "List @acronym{HSA,Heterogeneous System Architecture} Agents available to ROCm and show their properties.")
+ (home-page "https://github.com/RadeonOpenCompute/rocminfo")
+ (license ncsa)))
+
+(define-public rocminfo
+ (make-rocminfo rocr-runtime))
+
+; rocm-bandwidth-test
+(define (make-rocm-bandwidth rocr-runtime)
+ (package
+ (name "rocm-bandwidth-test")
+ (version (package-version rocr-runtime))
+ (source
+ (rocm-origin "rocm_bandwidth_test" version))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f ;No tests.
+ #:configure-flags #~(list "-DCMAKE_CXX_FLAGS=-Wno-error=cpp" ;ignores include reorg issue
+ )))
+ (inputs (list rocr-runtime))
+ (synopsis "Bandwith test for ROCm")
+ (description
+ "RocBandwidthTest is designed to capture the performance
+characteristics of buffer copying and kernel read/write operations. The help
+screen of the benchmark shows various options one can use in initiating
+copy/read/writer operations. In addition one can also query the topology of the
+system in terms of memory pools and their agents.")
+ (home-page "https://github.com/ROCm/rocm_bandwidth_test")
+ (license ncsa)))
+
+(define-public rocm-bandwidth
+ (make-rocm-bandwidth rocr-runtime))
+
+; rocm-smi
+(define (make-rocm-smi version)
+ (package
+ (name "rocm-smi")
+ (version version)
+ (source
+ (rocm-origin "rocm_smi_lib" version))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:build-type "Release"
+ #:tests? #f)) ;No tests.
+ (inputs (list python))
+ (propagated-inputs (list grep coreutils))
+ (synopsis "The ROCm System Management Interface (ROCm SMI) Library")
+ (description
+ "The ROCm System Management Interface Library, or ROCm SMI library,
+is part of the Radeon Open Compute ROCm software stack. It is a C library for Linux that
+provides a user space interface for applications to monitor and control GPU applications.")
+ (home-page "https://github.com/RadeonOpenCompute/rocm_smi_lib.git")
+ (license ncsa)))
+
+(define-public rocm-smi
+ (make-rocm-smi rocm-version-latest))
+
+; tensile
+(define (make-tensile version)
+ (package
+ (name "tensile")
+ (version version)
+ (source
+ (rocm-origin name version))
+ (build-system python-build-system)
+ (native-inputs (list python-pandas))
+ (propagated-inputs (list msgpack-3 python-msgpack python-pyyaml
+ python-joblib python-psutil))
+ (synopsis "A GEMM kernel generator for AMD GPUs.")
+ (description
+ "Tensile is a tool for creating benchmark-driven backend libraries for GEMMs, GEMM-like problems
+(such as batched GEMM), and general N-dimensional tensor contractions on a GPU. The Tensile library
+is mainly used as backend library to rocBLAS. Tensile acts as the performance backbone for a wide
+variety of 'compute' applications running on AMD GPUs.")
+ (home-page "https://github.com/ROCmSoftwarePlatform/Tensile.git")
+ (license expat)))
+
+(define-public tensile
+ (make-tensile rocm-version-latest))
diff --git a/aux-files/matrix-purple/fix-g_memdup.patch b/aux-files/matrix-purple/fix-g_memdup.patch
new file mode 100644
index 0000000..d0ed6dc
--- /dev/null
+++ b/aux-files/matrix-purple/fix-g_memdup.patch
@@ -0,0 +1,25 @@
+From 2452ec47427f62a9a521742c4d46bceb073229db Mon Sep 17 00:00:00 2001
+From: msglm <msglm@techchud.xyz>
+Date: Sun, 19 Jan 2025 11:53:20 -0600
+Subject: [PATCH] g_memdup -> g_memdup2
+
+---
+ matrix-room.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/matrix-room.c b/matrix-room.c
+index 34ae48b..0d7bc06 100644
+--- a/matrix-room.c
++++ b/matrix-room.c
+@@ -671,7 +671,7 @@ static void _image_download_complete(MatrixConnectionData *ma,
+ }
+ if (is_known_image_type(content_type)) {
+ /* Excellent - something to work with */
+- int img_id = purple_imgstore_add_with_id(g_memdup(raw_body, raw_body_len),
++ int img_id = purple_imgstore_add_with_id(g_memdup2(raw_body, raw_body_len),
+ raw_body_len, NULL);
+ serv_got_chat_in(rid->conv->account->gc, g_str_hash(rid->room_id), rid->sender_display_name,
+ PURPLE_MESSAGE_RECV | PURPLE_MESSAGE_IMAGES,
+--
+2.46.0
+
diff --git a/aux-files/openbox/openbox-add-fix-for-glib2-exposed-segfault.patch b/aux-files/openbox/openbox-add-fix-for-glib2-exposed-segfault.patch
new file mode 100644
index 0000000..ef68d31
--- /dev/null
+++ b/aux-files/openbox/openbox-add-fix-for-glib2-exposed-segfault.patch
@@ -0,0 +1,50 @@
+From 9ed6fdd71890c5cc43747f105382d5677e5d37e7 Mon Sep 17 00:00:00 2001
+From: pldubouilh <pldubouilh@gmail.com>
+Date: Fri, 17 Mar 2023 18:23:47 +0100
+Subject: [PATCH] Fix list traversal issue in client_calc_layer
+
+The calls to client_calc_layer_internal can modify stacking_list, which
+can cause us to follow dangling ->next pointers (either by the pointer
+itself already being freed, or it pointing to a freed area). Avoid this
+by copying the list first, the goal is to visit every client in the list
+once so this should be fine.
+---
+ openbox/client.c | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/openbox/client.c b/openbox/client.c
+index 7168b2407..b8264587c 100644
+--- a/openbox/client.c
++++ b/openbox/client.c
+@@ -2742,9 +2742,12 @@ static void client_calc_layer_internal(ObClient *self)
+ void client_calc_layer(ObClient *self)
+ {
+ GList *it;
++ /* the client_calc_layer_internal calls below modify stacking_list,
++ so we have to make a copy to iterate over */
++ GList *list = g_list_copy(stacking_list);
+
+ /* skip over stuff above fullscreen layer */
+- for (it = stacking_list; it; it = g_list_next(it))
++ for (it = list; it; it = g_list_next(it))
+ if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break;
+
+ /* find the windows in the fullscreen layer, and mark them not-visited */
+@@ -2757,7 +2760,7 @@ void client_calc_layer(ObClient *self)
+ client_calc_layer_internal(self);
+
+ /* skip over stuff above fullscreen layer */
+- for (it = stacking_list; it; it = g_list_next(it))
++ for (it = list; it; it = g_list_next(it))
+ if (window_layer(it->data) <= OB_STACKING_LAYER_FULLSCREEN) break;
+
+ /* now recalc any windows in the fullscreen layer which have not
+@@ -2768,6 +2771,8 @@ void client_calc_layer(ObClient *self)
+ !WINDOW_AS_CLIENT(it->data)->visited)
+ client_calc_layer_internal(it->data);
+ }
++
++ g_list_free(it);
+ }
+
+ gboolean client_should_show(ObClient *self)
diff --git a/aux-files/openbox/openbox-python3.patch b/aux-files/openbox/openbox-python3.patch
new file mode 100644
index 0000000..782524d
--- /dev/null
+++ b/aux-files/openbox/openbox-python3.patch
@@ -0,0 +1,165 @@
+Retrieved from the openbox Debian package.
+
+From acfbbc4ea40932f183617bb7006700140fe5f61e Mon Sep 17 00:00:00 2001
+From: Troy Curtis Jr <troycurtisjr@gmail.com>
+Date: Wed, 13 Sep 2017 21:59:48 -0500
+Subject: [PATCH] Add python3 support to openbox-xdg-autostart.
+
+Updated syntax in openbox-xdg-autostart to support both python2 and
+python3.
+
+Added a configure substitution to set the chosen python at build time.
+
+https://bugzilla.icculus.org/show_bug.cgi?id=6444
+---
+ .gitignore | 1 +
+ configure.ac | 3 +
+ ...xdg-autostart => openbox-xdg-autostart.in} | 70 +++++++++----------
+ 3 files changed, 38 insertions(+), 36 deletions(-)
+ rename data/autostart/{openbox-xdg-autostart => openbox-xdg-autostart.in} (77%)
+
+diff --git a/configure.ac b/configure.ac
+index ca1602670..9a31e9845 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -103,6 +103,8 @@ AC_CHECK_HEADERS(ctype.h dirent.h errno.h fcntl.h grp.h locale.h pwd.h)
+ AC_CHECK_HEADERS(signal.h string.h stdio.h stdlib.h unistd.h sys/stat.h)
+ AC_CHECK_HEADERS(sys/select.h sys/socket.h sys/time.h sys/types.h sys/wait.h)
+
++AM_PATH_PYTHON([2],,)
++
+ AC_PATH_PROG([SED], [sed], [no])
+ if test "$SED" = "no"; then
+ AC_MSG_ERROR([The program "sed" is not available. This program is required to build Openbox.])
+@@ -259,6 +261,7 @@ AC_CONFIG_FILES([
+ obrender/version.h
+ obt/version.h
+ version.h
++ data/autostart/openbox-xdg-autostart
+ ])
+ AC_CONFIG_COMMANDS([doc],
+ [test -d doc || mkdir doc])
+diff --git a/data/autostart/openbox-xdg-autostart b/data/autostart/openbox-xdg-autostart.in
+similarity index 77%
+rename from data/autostart/openbox-xdg-autostart
+rename to data/autostart/openbox-xdg-autostart.in
+index 04a17a199..3c365b112 100755
+--- a/data/autostart/openbox-xdg-autostart
++++ b/data/autostart/openbox-xdg-autostart.in
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!@PYTHON@
+
+ # openbox-xdg-autostart runs things based on the XDG autostart specification
+ # Copyright (C) 2008 Dana Jansens
+@@ -28,9 +28,7 @@ try:
+ from xdg.DesktopEntry import DesktopEntry
+ from xdg.Exceptions import ParsingError
+ except ImportError:
+- print
+- print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed"
+- print
++ sys.stderr.write("\nERROR: %s requires PyXDG to be installed\n" % ME)
+ sys.exit(1)
+
+ def main(argv=sys.argv):
+@@ -51,7 +49,7 @@ def main(argv=sys.argv):
+ try:
+ autofile = AutostartFile(path)
+ except ParsingError:
+- print "Invalid .desktop file: " + path
++ print("Invalid .desktop file: " + path)
+ else:
+ if not autofile in files:
+ files.append(autofile)
+@@ -99,9 +97,9 @@ class AutostartFile:
+
+ def _alert(self, str, info=False):
+ if info:
+- print "\t ", str
++ print("\t ", str)
+ else:
+- print "\t*", str
++ print("\t*", str)
+
+ def _showInEnvironment(self, envs, verbose=False):
+ default = not self.de.getOnlyShowIn()
+@@ -146,14 +144,14 @@ class AutostartFile:
+
+ def display(self, envs):
+ if self._shouldRun(envs):
+- print "[*] " + self.de.getName()
++ print("[*] " + self.de.getName())
+ else:
+- print "[ ] " + self.de.getName()
++ print("[ ] " + self.de.getName())
+ self._alert("File: " + self.path, info=True)
+ if self.de.getExec():
+ self._alert("Executes: " + self.de.getExec(), info=True)
+ self._shouldRun(envs, True)
+- print
++ print()
+
+ def run(self, envs):
+ here = os.getcwd()
+@@ -165,34 +163,34 @@ class AutostartFile:
+ os.chdir(here)
+
+ def show_help():
+- print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..."
+- print
+- print "This tool will run xdg autostart .desktop files"
+- print
+- print "OPTIONS"
+- print " --list Show a list of the files which would be run"
+- print " Files which would be run are marked with an asterix"
+- print " symbol [*]. For files which would not be run,"
+- print " information is given for why they are excluded"
+- print " --help Show this help and exit"
+- print " --version Show version and copyright information"
+- print
+- print "ENVIRONMENT specifies a list of environments for which to run autostart"
+- print "applications. If none are specified, only applications which do not "
+- print "limit themselves to certain environments will be run."
+- print
+- print "ENVIRONMENT can be one or more of:"
+- print " GNOME Gnome Desktop"
+- print " KDE KDE Desktop"
+- print " ROX ROX Desktop"
+- print " XFCE XFCE Desktop"
+- print " Old Legacy systems"
+- print
++ print("Usage:", ME, "[OPTION]... [ENVIRONMENT]...")
++ print()
++ print("This tool will run xdg autostart .desktop files")
++ print()
++ print("OPTIONS")
++ print(" --list Show a list of the files which would be run")
++ print(" Files which would be run are marked with an asterix")
++ print(" symbol [*]. For files which would not be run,")
++ print(" information is given for why they are excluded")
++ print(" --help Show this help and exit")
++ print(" --version Show version and copyright information")
++ print()
++ print("ENVIRONMENT specifies a list of environments for which to run autostart")
++ print("applications. If none are specified, only applications which do not ")
++ print("limit themselves to certain environments will be run.")
++ print()
++ print("ENVIRONMENT can be one or more of:")
++ print(" GNOME Gnome Desktop")
++ print(" KDE KDE Desktop")
++ print(" ROX ROX Desktop")
++ print(" XFCE XFCE Desktop")
++ print(" Old Legacy systems")
++ print()
+
+ def show_version():
+- print ME, VERSION
+- print "Copyright (c) 2008 Dana Jansens"
+- print
++ print(ME, VERSION)
++ print("Copyright (c) 2008 Dana Jansens")
++ print()
+
+ if __name__ == "__main__":
+ sys.exit(main())
diff --git a/aux-files/python-bugwarrior/gitea-support.patch b/aux-files/python-bugwarrior/gitea-support.patch
index 6c2c331..80ccb4b 100644
--- a/aux-files/python-bugwarrior/gitea-support.patch
+++ b/aux-files/python-bugwarrior/gitea-support.patch
@@ -1,7 +1,7 @@
From 6d7e50b5d1f7e79a685b08045cd91ea0b24f2154 Mon Sep 17 00:00:00 2001
From: wamsachel <wamsachel@gmail.com>
Date: Wed, 1 Apr 2020 22:27:52 +0000
-Subject: [PATCH 1/2] (WIP) Adding service support for Gitea
+Subject: [PATCH 1/8] (WIP) Adding service support for Gitea
Imported from https://github.com/GothenburgBitFactory/bugwarrior/pull/720
---
@@ -568,7 +568,7 @@ index c761a231..b5306da5 100644
From 80cd03d1ff85244f8a2c2beb37eab16af11e1adf Mon Sep 17 00:00:00 2001
From: msglm <msglm@techchud.xyz>
Date: Tue, 21 May 2024 04:21:35 -0500
-Subject: [PATCH 2/2] Add basic Gitea support
+Subject: [PATCH 2/8] Add basic Gitea support
Builds off PR #720 to add gitea integration to bugwarrior.
---
@@ -844,7 +844,7 @@ index a4c174c8..445846ff 100644
From 81b3fa0b47db93fb83a54c6727f5ee3c408797c5 Mon Sep 17 00:00:00 2001
From: msglm <msglm@techchud.xyz>
Date: Wed, 22 May 2024 20:59:54 -0500
-Subject: [PATCH 3/4] Add basic documentation
+Subject: [PATCH 3/8] Add basic documentation
mish-mash between the github and gitlab documentation with everything I
don't think is supported removed.
@@ -987,7 +987,7 @@ index 00000000..6ccf2308
From 1626a36c15013fc42e369cdc9ef98c23e10845c2 Mon Sep 17 00:00:00 2001
From: msglm <msglm@techchud.xyz>
Date: Wed, 22 May 2024 21:00:20 -0500
-Subject: [PATCH 4/4] Remove Six usage and clean the codebase
+Subject: [PATCH 4/8] Remove Six usage and clean the codebase
Suggestions from here are implemented
https://github.com/GothenburgBitFactory/bugwarrior/pull/1048#pullrequestreview-2070021239
@@ -1057,7 +1057,7 @@ index 445846ff..341ec617 100644
From 17b725774281e9742b786dbcbcf791f7f3dacf61 Mon Sep 17 00:00:00 2001
From: msglm <msglm@techchud.xyz>
Date: Thu, 23 May 2024 05:03:39 -0500
-Subject: [PATCH 5/6] Intake Critique and simplify
+Subject: [PATCH 5/8] Intake Critique and simplify
Remove user+pass auth, token only now.
Added issue API Querying for writing custom queries
@@ -1367,7 +1367,7 @@ index 341ec617..28a92e96 100644
From 3eb6e743c7ee4c7892525c05d880f5d05d3f8600 Mon Sep 17 00:00:00 2001
From: msglm <msglm@techchud.xyz>
Date: Thu, 23 May 2024 05:13:33 -0500
-Subject: [PATCH 6/6] Documentation for previous commit
+Subject: [PATCH 6/8] Documentation for previous commit
---
bugwarrior/docs/services/gitea.rst | 31 +++++++++++++++++++++++++++---
@@ -1424,3 +1424,140 @@ index 6ccf2308..19e0930a 100644
Provided UDA Fields
-------------------
+
+From 439c3f02338a43dcd0309fe297a706f0232a6138 Mon Sep 17 00:00:00 2001
+From: msglm <msglm@techchud.xyz>
+Date: Wed, 19 Feb 2025 03:32:02 -0600
+Subject: [PATCH 7/8] Update to modern standards
+
+---
+ bugwarrior/services/gitea.py | 37 +++++++++++++++---------------------
+ 1 file changed, 15 insertions(+), 22 deletions(-)
+
+diff --git a/bugwarrior/services/gitea.py b/bugwarrior/services/gitea.py
+index 28a92e96..8814633a 100644
+--- a/bugwarrior/services/gitea.py
++++ b/bugwarrior/services/gitea.py
+@@ -3,9 +3,9 @@
+ """Bugwarrior service support class for Gitea
+
+ Available classes:
+-- GiteaClient(ServiceClient): Constructs Gitea API strings
++- GiteaClient(Service): Constructs Gitea API strings
+ - GiteaIssue(Issue): TaskWarrior Interface
+-- GiteaService(IssueService): Engine for firing off requests
++- GiteaService(Issue): Engine for firing off requests
+
+ Todo:
+ * Add token support
+@@ -25,7 +25,7 @@
+ from jinja2 import Template
+
+ from bugwarrior import config
+-from bugwarrior.services import IssueService, Issue, ServiceClient
++from bugwarrior.services import Issue, Service, Client
+
+ log = logging.getLogger(__name__) # pylint: disable-msg=C0103
+
+@@ -62,7 +62,7 @@ def get(self, key, default=None, to_type=None):
+ return default
+
+
+-class GiteaClient(ServiceClient):
++class GiteaClient(Client):
+ """Builds Gitea API strings
+ Args:
+ host (str): remote gitea server
+@@ -263,8 +263,11 @@ class GiteaIssue(Issue):
+ @staticmethod
+ def _normalize_label_to_tag(label):
+ return re.sub(r'[^a-zA-Z0-9]', '_', label)
++ def get_tags(self):
++ labels = [label['name'] for label in self.record.get('labels', [])]
++ return self.get_tags_from_labels(labels)
+
+- def to_taskwarrior(self):
++ def to_taskwarrior(self) -> dict:
+ milestone = self.record['milestone']
+ if milestone:
+ milestone = milestone['title']
+@@ -302,31 +305,18 @@ def to_taskwarrior(self):
+ self.NAMESPACE: self.extra['namespace'],
+ self.STATE: self.record.get('state', '')
+ }
+- def get_tags(self):
+- labels = [label['name'] for label in self.record.get('labels', [])]
+- return self.get_tags_from_labels(labels)
+-
+- def get_default_description(self):
+- log.info('In get_default_description')
+- return self.build_default_description(
+- title=self.record['title'],
+- url=self.get_processed_url(self.record['url']),
+- number=self.record['number'],
+- cls=self.extra['type'],
+- )
+-
+
+ def get_default_description(self):
+ log.info('In get_default_description')
+ return self.build_default_description(
+ title=self.record['title'],
+- url=self.get_processed_url(self.record['url']),
++ url=self.record['url'],
+ number=self.record['number'],
+ cls=self.extra['type'],
+ )
+
+
+-class GiteaService(IssueService):
++class GiteaService(Service):
+ ISSUE_CLASS = GiteaIssue
+ CONFIG_SCHEMA = GiteaConfig
+ CONFIG_PREFIX = 'gitea'
+@@ -455,7 +445,7 @@ def annotations(self, tag, issue, issue_obj):
+ ) for c in comments)
+ annotations_result = self.build_annotations(
+ annotations,
+- issue_obj.get_processed_url(url))
++ url)
+ log.info('annotations: {}'.format(annotations_result))
+ return annotations_result
+
+@@ -573,6 +563,9 @@ def issues(self):
+ 'annotations': [issue['body']],
+ 'namespace': self.username,
+ }
+- issue_obj.update_extra(extra)
++ issue_obj.extra.update(extra)
+ yield issue_obj
+
++
++
++
+
+From db4c47837d15cb126cb97a97f72db061052db5ab Mon Sep 17 00:00:00 2001
+From: msglm <msglm@techchud.xyz>
+Date: Wed, 19 Feb 2025 03:34:16 -0600
+Subject: [PATCH 8/8] Do not yield on AttributeError
+
+Previously, when there is an AttributeError in a service, the service
+will return its issue object instead of a dictionary representation of
+the issue. This fixes it by raising an error if this happens.
+---
+ bugwarrior/collect.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bugwarrior/collect.py b/bugwarrior/collect.py
+index 8d435461..34af838a 100644
+--- a/bugwarrior/collect.py
++++ b/bugwarrior/collect.py
+@@ -100,7 +100,7 @@ def aggregate_issues(conf, main_section, debug):
+ log.error(f"Aborted [{target}] due to critical error.")
+ yield ('SERVICE FAILED', target)
+ continue
+- yield issue
++ raise
+
+ log.info("Done aggregating remote issues.")
+
diff --git a/aux-files/stable-diffusion-cpp/vulkan-support.patch b/aux-files/stable-diffusion-cpp/vulkan-support.patch
new file mode 100644
index 0000000..88f5fbf
--- /dev/null
+++ b/aux-files/stable-diffusion-cpp/vulkan-support.patch
@@ -0,0 +1,123 @@
+From 15553084e5d1a7d6abd3aac176bee95b0247c379 Mon Sep 17 00:00:00 2001
+From: sohzm <sohxm7@gmail.com>
+Date: Wed, 19 Jun 2024 04:08:18 +0530
+Subject: [PATCH] wip
+
+---
+ CMakeLists.txt | 7 +++++++
+ ggml | 2 +-
+ ggml_extend.hpp | 6 +++++-
+ model.cpp | 4 ++++
+ stable-diffusion.cpp | 6 +++++-
+ upscaler.cpp | 4 ++++
+ 6 files changed, 26 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 28a03fb..6b5679f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -27,6 +27,7 @@ option(SD_BUILD_EXAMPLES "sd: build examples" ${SD_STANDALONE})
+ option(SD_CUBLAS "sd: cuda backend" OFF)
+ option(SD_HIPBLAS "sd: rocm backend" OFF)
+ option(SD_METAL "sd: metal backend" OFF)
++option(SD_VULKAN "sd: vulkan backend" OFF)
+ option(SD_FLASH_ATTN "sd: use flash attention for x4 less memory usage" OFF)
+ option(SD_FAST_SOFTMAX "sd: x1.5 faster softmax, indeterministic (sometimes, same seed don't generate same image), cuda only" OFF)
+ option(SD_BUILD_SHARED_LIBS "sd: build shared libs" OFF)
+@@ -44,6 +45,12 @@ if(SD_METAL)
+ add_definitions(-DSD_USE_METAL)
+ endif()
+
++if (SD_VULKAN)
++ message("Use Vulkan as backend stable-diffusion")
++ set(GGML_VULKAN ON)
++ add_definitions(-DSD_USE_VULKAN)
++endif ()
++
+ if (SD_HIPBLAS)
+ message("Use HIPBLAS as backend stable-diffusion")
+ set(GGML_HIPBLAS ON)
+diff --git a/ggml b/ggml
+index 9d562d7..5653a19 160000
+--- a/ggml
++++ b/ggml
+@@ -1 +1 @@
+-Subproject commit 9d562d712513c77a4de44ad0428be62bc3f2a9cf
++Subproject commit 5653a195935ea3ac54652644c9daf154dbc1571b
+diff --git a/ggml_extend.hpp b/ggml_extend.hpp
+index dbe9303..1236996 100644
+--- a/ggml_extend.hpp
++++ b/ggml_extend.hpp
+@@ -32,6 +32,10 @@
+ #include "ggml-metal.h"
+ #endif
+
++#ifdef SD_USE_VULKAN
++#include "ggml-vulkan.h"
++#endif
++
+ #include "rng.hpp"
+ #include "util.h"
+
+@@ -588,7 +592,7 @@ __STATIC_INLINE__ struct ggml_tensor* ggml_nn_attention(struct ggml_context* ctx
+ struct ggml_tensor* k,
+ struct ggml_tensor* v,
+ bool mask = false) {
+-#if defined(SD_USE_FLASH_ATTENTION) && !defined(SD_USE_CUBLAS) && !defined(SD_USE_METAL)
++#if defined(SD_USE_FLASH_ATTENTION) && !defined(SD_USE_CUBLAS) && !defined(SD_USE_METAL) && !defined(SD_USE_VULKAN)
+ struct ggml_tensor* kqv = ggml_flash_attn(ctx, q, k, v, false); // [N * n_head, n_token, d_head]
+ #else
+ float d_head = (float)q->ne[0];
+diff --git a/model.cpp b/model.cpp
+index c4556a9..db8bae8 100644
+--- a/model.cpp
++++ b/model.cpp
+@@ -21,6 +21,10 @@
+ #include "ggml-metal.h"
+ #endif
+
++#ifdef SD_USE_VULKAN
++#include "ggml-vulkan.h"
++#endif
++
+ #define ST_HEADER_SIZE_LEN 8
+
+ uint64_t read_u64(uint8_t* buffer) {
+diff --git a/stable-diffusion.cpp b/stable-diffusion.cpp
+index 8e439d2..3521e76 100644
+--- a/stable-diffusion.cpp
++++ b/stable-diffusion.cpp
+@@ -154,13 +154,17 @@ class StableDiffusionGGML {
+ ggml_backend_metal_log_set_callback(ggml_log_callback_default, nullptr);
+ backend = ggml_backend_metal_init();
+ #endif
++#ifdef SD_USE_VULKAN
++ LOG_DEBUG("Using Vulkan backend");
++ backend = ggml_backend_vk_init();
++#endif
+
+ if (!backend) {
+ LOG_DEBUG("Using CPU backend");
+ backend = ggml_backend_cpu_init();
+ }
+ #ifdef SD_USE_FLASH_ATTENTION
+-#if defined(SD_USE_CUBLAS) || defined(SD_USE_METAL)
++#if defined(SD_USE_CUBLAS) || defined(SD_USE_METAL) || defined(SD_USE_VULKAN)
+ LOG_WARN("Flash Attention not supported with GPU Backend");
+ #else
+ LOG_INFO("Flash Attention enabled");
+diff --git a/upscaler.cpp b/upscaler.cpp
+index 0e3f95d..7623f9b 100644
+--- a/upscaler.cpp
++++ b/upscaler.cpp
+@@ -24,6 +24,10 @@ struct UpscalerGGML {
+ ggml_backend_metal_log_set_callback(ggml_log_callback_default, nullptr);
+ backend = ggml_backend_metal_init();
+ #endif
++#ifdef SD_USE_VULKAN
++ LOG_DEBUG("Using Vulkan backend");
++ backend = ggml_backend_vk_init(0);
++#endif
+
+ if (!backend) {
+ LOG_DEBUG("Using CPU backend");
diff --git a/backport.scm b/backport.scm
new file mode 100644
index 0000000..d83524b
--- /dev/null
+++ b/backport.scm
@@ -0,0 +1,410 @@
+(define-module (backport)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages algebra)
+ #:use-module (gnu packages assembly)
+ #:use-module (gnu packages audio)
+ #:use-module (gnu packages autogen)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages backup)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages cdrom)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages cmake)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages containers)
+ #:use-module (gnu packages cross-base)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages digest)
+ #:use-module (gnu packages elf)
+ #:use-module (gnu packages emulators)
+ #:use-module (gnu packages engineering)
+ #:use-module (gnu packages flex)
+ #:use-module (gnu packages fltk)
+ #:use-module (gnu packages fonts)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages fribidi)
+ #:use-module (gnu packages game-development)
+ #:use-module (gnu packages game-development)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages gl)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages graphics)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages libedit)
+ #:use-module (gnu packages libusb)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages lua)
+ #:use-module (gnu packages maths)
+ #:use-module (gnu packages mp3)
+ #:use-module (gnu packages music)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages openbox)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages pretty-print)
+ #:use-module (gnu packages pretty-print)
+ #:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages sdl)
+ #:use-module (gnu packages sdl)
+ #:use-module (gnu packages sphinx)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages texinfo)
+ #:use-module (gnu packages textutils)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages upnp)
+ #:use-module (gnu packages version-control)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages vulkan)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix hg-download)
+ #:use-module (guix packages)
+ #:use-module (guix svn-download)
+ #:use-module (guix utils)
+ #:use-module (ice-9 match)
+ )
+
+(define-public dolphin-emu-next
+ (package
+ (inherit dolphin-emu)
+ (name "dolphin-emu-next")
+ (version "2503")
+ ;(version "ad3650abfcae6432338ba976123958ee67a4106c")
+ (inputs
+ (list alsa-lib
+ ao
+ bluez
+ bzip2
+ cubeb
+ curl
+ enet-1.3.18
+ eudev
+ ffmpeg-4
+ fmt-10
+ font-wqy-microhei
+ freetype
+ git-minimal
+ glew
+ glib
+ glu
+ gtk+-2
+ hidapi
+ libevdev
+ libpng
+ libusb
+ libx11
+ libxi
+ libxrandr
+ lzo
+ mbedtls-lts
+ mesa
+ miniupnpc
+ minizip-ng
+ openal
+ pugixml
+ pulseaudio
+ qtbase
+ qtsvg
+ sdl2-2.30.9
+ sfml-3
+ soil
+ soundtouch-1/integer-samples
+ vulkan-loader
+ xxhash
+ zlib
+ libxcursor
+ libxi
+ `(,zstd "lib")))
+
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'set-scm-desc-str
+ (lambda _
+ (substitute* "Source/Core/Common/scmrev.h.in" (("#define SCM_REV_STR \"\\$\\{DOLPHIN_WC_REVISION\\}\"") "#define SCM_REV_STR \"9763c0a1e2b9db0c3861d25bc2f5a0ace6a15ee3\""))
+ ))
+ (add-before 'configure 'remove-unittests-target-post-build-command
+ (lambda _
+ ;; To skip a few problematic tests, CTest will be manually
+ ;; invoked in the post-check phase.
+ (with-directory-excursion "Source/UnitTests"
+ (substitute* "CMakeLists.txt"
+ (("add_custom_command\\(TARGET unittests POST_BUILD.*")
+ "")))))
+ (add-before 'configure 'generate-fonts&hardcore-libvulkan-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((fontfile
+ (search-input-file inputs
+ "/share/fonts/truetype/wqy-microhei.ttc"))
+ (libvulkan
+ (search-input-file inputs "/lib/libvulkan.so")))
+ (chdir "docs")
+ (invoke "bash" "-c" "g++ -O2 $(freetype-config \
+ --cflags --libs) gc-font-tool.cpp -o gc-font-tool")
+ (invoke "./gc-font-tool" "a" fontfile "font_western.bin")
+ (invoke "./gc-font-tool" "s" fontfile "font_japanese.bin")
+ (copy-file "font_japanese.bin" "../Data/Sys/GC/font_japanese.bin")
+ (copy-file "font_western.bin" "../Data/Sys/GC/font_western.bin")
+ (chdir "..")
+ (substitute* "Source/Core/VideoBackends/Vulkan/VulkanLoader.cpp"
+ (("\"vulkan\", 1") (string-append "\"vulkan\""))
+ (("\"vulkan\"") (string-append "\"" libvulkan "\""))
+ (("Common::DynamicLibrary::GetVersionedFilename") "")))))
+ (add-after 'check 'post-check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (with-directory-excursion "Source/UnitTests"
+ (invoke "ctest" "-V" "--output-on-failure"
+ ;; These tests fail due to libusb failing to
+ ;; init inside the build container.
+ "-E" (string-join
+ '("MMIOTest"
+ "PageFaultTest"
+ "CoreTimingTest"
+ "FileSystemTest"
+ "PowerPCTest"
+ "VertexLoaderTest")
+ "|"))))))
+ (add-before 'install 'build-codeloader.bin
+ (lambda _
+ (with-directory-excursion "../source/docs"
+ ;; The following command-line is adapted from the example in
+ ;; codehandler.s.
+ (invoke "powerpc-linux-gnu-gcc" "-mpowerpc" "-mbig"
+ "codehandler.s" "-nostartfiles" "-nodefaultlibs"
+ "-nostdlib" "-T" "codehandler.ld"
+ "-o" "codehandler.bin")
+ (copy-file "codehandler.bin" "../Data/Sys/codehandler.bin"))))
+ (add-before 'install 'build-dsp_rom.bin
+ (lambda _
+ ;; Ensure dsptool is on PATH.
+ (setenv "PATH" (string-append (getenv "PATH") ":"
+ (getcwd) "/Binaries"))
+ (with-directory-excursion "../source"
+ (invoke "dsptool" "-o" "Data/Sys/GC/dsp_rom.bin"
+ "docs/DSP/free_dsp_rom/dsp_rom.ds"))))
+ (add-before 'install 'build-dsp_coefs.bin
+ (lambda _
+ (with-directory-excursion "../source"
+ (invoke "python3" "docs/DSP/free_dsp_rom/generate_coefs.py")
+ (rename-file "dsp_coef.bin" "Data/Sys/GC/dsp_coef.bin")))))
+ ;; The FindGTK2 cmake script only checks hardcoded directories for
+ ;; glib/gtk headers. Also add some include directories via the CXX
+ ;; flags to let GCC find some headers not actively searched by the
+ ;; build system.
+ #:configure-flags
+ #~(list (string-append "-DCMAKE_CXX_FLAGS="
+ "-I" (search-input-directory
+ %build-inputs "include/soundtouch"))
+ "-DDSPTOOL=ON"
+ (string-append "-DX11_INCLUDE_DIR="
+ #$(this-package-input "libx11")
+ "/include")
+ (string-append "-DOLPHIN_WC_DESCRIBE=2503")
+ (string-append "-DOLPHIN_WC_REVISION=9763c0a1e2b9db0c3861d25bc2f5a0ace6a15ee3")
+ (string-append "-DOLPHIN_WC_BRANCH=HEAD")
+ (string-append "-DCMAKE_BUILD_TYPE=Release")
+ (string-append "-DX11_LIBRARIES="
+ (search-input-file %build-inputs
+ "lib/libX11.so"))
+ "-DX11_FOUND=1")
+ #:test-target "unittests"))
+
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/dolphin-emu/dolphin")
+ (recursive? #t)
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0yyl91sb8w422zfdml9hmwwn3088gxv977aailc0l5icaxf4m8m2"))
+ (modules '((guix build utils)
+ (ice-9 regex)))
+ (snippet
+ '(begin
+ ;; Remove external stuff we don't need.
+ (for-each (lambda (dir)
+ (delete-file-recursively
+ (string-append "Externals/" dir)))
+ '(
+ ;"LZO" "OpenAL" "Qt" "SFML" "bzip2"
+ "LZO" "OpenAL" "Qt" "bzip2"
+ ;; XXX: Attempting to use the vulkan-headers package
+ ;; results in "error:
+ ;; ‘VK_PRESENT_MODE_RANGE_SIZE_KHR’ was not declared
+ ;; in this scope".
+ ;;"Vulkan"
+ "cubeb" "curl" "enet"
+ ;"ffmpeg" "fmt" "gettext"
+ "fmt" "gettext"
+ ;; XXX: Attempting to use an unbundled glslang at the
+ ;; exact commit used by Dolphin still results in
+ ;; "error: ‘DefaultTBuiltInResource’ is not a member
+ ;; of ‘glslang’".
+ ;;"glslang"
+ ;; XXX: Googletest cannot currently easily be
+ ;; unbundled, as there are missing linking
+ ;; directives.
+ ;;"gtest"
+ ;"hidapi" "libpng" "libusb" "mbedtls"
+ "hidapi" "libusb" "mbedtls"
+ ;"miniupnpc" "minizip" "MoltenVK" "pugixml"
+ "miniupnpc" "MoltenVK" "pugixml"
+ ;"soundtouch"
+ ;"xxhash" "zlib" "zstd"
+ "xxhash" "zstd"
+ ))
+ ;; Clean up the source.
+ (for-each delete-file
+ (find-files
+ "."
+ (lambda (file _)
+ (and (string-match "\\.(bin|dsy|exe|jar|rar)$" file)
+ ;; Preserve the important wc24 .bin
+ ;; configuration *data* files.
+ (not (member (basename file)
+ '("misc.bin"
+ "nwc24dl.bin"
+ "nwc24fl.bin"
+ "nwc24fls.bin")))))))
+ ;; Do not attempt to include now-missing directories.
+ (substitute* "CMakeLists.txt"
+ ((".*add_subdirectory.*Externals/enet.*") "")
+ ((".*add_subdirectory.*Externals/soundtouch.*") "")
+ ((".*add_subdirectory.*Externals/xxhash.*") ""))))
+ ;(patches (search-patches "dolphin-emu-data.patch")
+ ))))
+
+(define-public sdl2-2.30.9
+ (package
+ (inherit sdl2)
+ (name "sdl2-2.30.9")
+ (version "2.30.9")
+ (source (origin
+ (method url-fetch)
+ (uri
+ (string-append "https://libsdl.org/release/SDL2-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "197bdcfnnsd4k7q91y518kari0p3rcqbdfq40zsn79w73kvp9d94"))))
+ ))
+
+(define-public enet-1.3.18
+ (package
+ (inherit enet)
+ (name "enet-1.3.18")
+ (version "1.3.18")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://enet.bespin.org/download/"
+ "enet-" version ".tar.gz"))
+ (sha256
+ (base32 "0djxz2j8248bsvbrs42vr39fhxlrqr3lqbhzs7yb92ync19hr2ia"))))
+ ))
+
+(define-public sfml-3
+ (package
+ (inherit sfml)
+ (name "sfml-3")
+ (version "3.0.0")
+ (inputs (modify-inputs (package-inputs sfml)
+ (prepend libxcursor libxi miniaudio)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/SFML/SFML")
+ (recursive? #t)
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0y37cmpp490gcibajigxsbjc6icggqv40jrhzj2kwygpc0ppzb3v"))
+ (modules '((guix build utils)))
+ ;(snippet
+ ; '(begin
+ ; ;; Ensure system libraries are used.
+ ; (delete-file-recursively "extlibs")
+ ; #t))
+ ))
+ ))
+
+(define-public miniaudio
+ (package
+ (name "miniaudio")
+ (version "0.11.22")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/mackron/miniaudio")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1pjaiq71x24n9983vkhjxrsbraa24053h727db22b1rb2xyfrzm3"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:tests? #f
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'install
+ (lambda _
+ (let ((out #$output))
+ ;; Ensure the output directory exists
+ (mkdir-p (string-append out "/lib"))
+ ;; Copy the static libraries to the output directory
+ (for-each (lambda (file)
+ (copy-file file (string-append out "/lib/" file))) ; Ensure the destination is a file
+ '("libminiaudio.a"
+ "libminiaudio_channel_combiner_node.a"
+ "libminiaudio_channel_separator_node.a"
+ "libminiaudio_ltrim_node.a"
+ "libminiaudio_reverb_node.a"
+ "libminiaudio_vocoder_node.a"))))))))
+ (synopsis "Audio playback and capture library written in C, in a single source file.")
+ (description "miniaudio is written in C with no dependencies except the standard library and should compile clean on all major compilers without the need to install any additional development packages. All major desktop and mobile platforms are supported.")
+ (home-page "https://miniaud.io/")
+ (license license:expat)))
+
+(define-public openbox-patched
+ (package
+ (inherit openbox)
+ (name "openbox-patched")
+ (version "3.6.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://openbox.org/dist/openbox/" name "-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0vg2y1qddsdxkjv806mzpvmkgzliab8ll4s7zm7ma5jnriamirxb"))
+ (patches (search-patches "aux-files/openbox/openbox-add-fix-for-glib2-exposed-segfault.patch" "aux-files/openbox/openbox-python3.patch"))))
+ ))
+
diff --git a/bugwarrior.scm b/bugwarrior.scm
index e192602..bb1c827 100644
--- a/bugwarrior.scm
+++ b/bugwarrior.scm
@@ -1,9 +1,11 @@
(define-module (bugwarrior)
+ #:use-module ((guix licenses) :prefix license:)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages glib)
#:use-module (gnu packages python)
+ #:use-module (gnu packages openstack)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-science)
@@ -21,10 +23,39 @@
#:use-module (guix licenses)
#:use-module (guix packages)
)
+
+(define-public python-dogpile.cache
+ (package
+ (name "python-dogpile.cache")
+ (version "1.1.8")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "dogpile.cache" version))
+ (sha256
+ (base32
+ "0kpx42vxzss4sz5ic6mp01a97zinzm6q76n8li2gbi4ccfxyhi6q"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases
+ (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest")))))))
+ (native-inputs (list python-mako python-pytest))
+ (propagated-inputs (list python-decorator python-stevedore))
+ (home-page "https://github.com/sqlalchemy/dogpile.cache")
+ (synopsis "Caching front-end based on the Dogpile lock")
+ (description "@code{dogpile.cache} is a caching API which provides a
+generic interface to caching backends of any variety, and additionally
+provides API hooks which integrate these cache backends with the locking
+mechanism of @code{dogpile}.")
+ (license license:expat)))
+
(define-public python-bugwarrior
(package
(name "python-bugwarrior")
- (version "71efc97435a442646782dcb0979df43f69ce955d")
+ (version "ce92e3a4f05f5d78e13d2924c27d8743813fb2f9")
(source
(origin
(method git-fetch)
@@ -32,7 +63,7 @@
(url "https://github.com/GothenburgBitFactory/bugwarrior.git")
(commit version)))
(sha256
- (base32 "0d22av15dyan6yzhqxx01sf45i2fnk1i92wyh9hahfhmv3gawnj1"))
+ (base32 "0v96zg2ga8cw84zx12dvh3m995adf5k40x9cs53waxranxvm4k0a"))
(modules '((guix build utils)))
(patches
(search-patches "aux-files/python-bugwarrior/gitea-support.patch"))
@@ -57,26 +88,29 @@
python-tomli
python-pygobject
python-notify2
- python-pydantic-2.7.1
+ python-pydantic-2
+ python-google-api-client
+ python-google-auth-oauthlib
))
(native-inputs (list python-email-validator-2.1.1))
(home-page "http://github.com/ralphbean/bugwarrior")
(synopsis "Sync github, bitbucket, and trac issues with taskwarrior")
(description "Sync github, bitbucket, and trac issues with taskwarrior")
- (license #f)))
+ (license license:gpl3)))
(define-public python-email-validator-2.1.1
(package
(name "python-email-validator")
- (version "2.1.1")
+ (version "2.1.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "email_validator" version))
(sha256
- (base32 "112bhbxkwls2v0j5k6ir6iv6h3fc0n975vqydnz092d01dl702i0"))))
+ (base32 "0k7hm433xm9syxfq486zflxf7fqiljgv688480vxmgn48g9z7h0l"))))
(build-system pyproject-build-system)
(propagated-inputs (list python-dnspython python-idna))
+ (native-inputs (list python-setuptools python-wheel))
(arguments
'( #:phases
(modify-phases %standard-phases
@@ -88,16 +122,7 @@
(description
"This package provides a robust email address syntax and deliverability
validation library.")
- (license #f)))
-
- (define-public python-pydantic-2.7.1
- (package
- (inherit python-pydantic)
- (name "python-email-validator")
- (inputs (modify-inputs (package-inputs python-pydantic)
- (prepend python-email-validator-2.1.1)))
- (version "2.1.1")
- ))
+ (license license:unlicense)))
(define-public python-taskw
(package
@@ -110,10 +135,14 @@
(sha256
(base32 "1pcbai69la53fjn2ahmni18zcgrhg34058q7a0mb7ag7ppwvs28i"))))
(build-system pyproject-build-system)
- (propagated-inputs (list python-kitchen python-dateutil python-pytz))
- (native-inputs (list python-pytest taskwarrior))
+ (propagated-inputs (list python-kitchen python-dateutil python-pytz taskwarrior python-setuptools python-wheel python-pytest))
+ (arguments
+ '( #:phases
+ (modify-phases %standard-phases
+ (delete 'check) ;Networking required for checks, so disable them
+ )))
(home-page "http://github.com/ralphbean/taskw")
(synopsis "Python bindings for your taskwarrior database")
(description "Python bindings for your taskwarrior database")
- (license #f)))
+ (license license:gpl3)))
diff --git a/machinelearning.scm b/machinelearning.scm
index 02975e7..0a11964 100644
--- a/machinelearning.scm
+++ b/machinelearning.scm
@@ -1,27 +1,53 @@
(define-module (machinelearning)
- #:use-module (gnu packages protobuf)
+ #:use-module ((guix licenses) :prefix license:)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages check)
+ #:use-module (gnu packages wxwidgets)
+ #:use-module (gnu packages commencement)
+ #:use-module (gnu packages crates-io)
+ #:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-maths)
+ #:use-module (gnu packages golang-compression)
+ #:use-module (gnu packages golang-crypto)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages prometheus)
+ #:use-module (gnu packages golang-web)
+ #:use-module (gnu packages golang-xyz)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages llvm)
+ #:use-module (gnu packages machine-learning)
+ #:use-module (gnu packages maths)
+ #:use-module (gnu packages opencl)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
- #:use-module (gnu packages python-check)
#:use-module (gnu packages python-build)
- #:use-module (gnu packages python-xyz)
- #:use-module (gnu packages python-web)
+ #:use-module (gnu packages version-control)
+ #:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
- #:use-module (gnu packages machine-learning)
+ #:use-module (gnu packages python-web)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages rust)
- #:use-module (gnu packages maths)
#:use-module (gnu packages rust-apps)
- #:use-module (gnu packages crates-io)
- #:use-module (guix build-system python)
- #:use-module (guix build-system pyproject)
+ #:use-module (gnu packages vulkan)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages)
+ #:use-module (guix build utils)
#:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
- #:use-module (guix build utils)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
+ #:use-module (guix build-system pyproject)
+ #:use-module (guix build-system python)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix packages)
- #:use-module (guix gexp)
- #:use-module (guix download)
- #:use-module ((guix licenses) :prefix license:)
+ #:use-module (guix utils)
)
(define-public poetry-plugin-export
@@ -79,294 +105,211 @@
(description
"This package provides a library for installing Python wheels.")
(license #f)))
-
-(define-public python-rclip
+(define-public ggml
(package
- (name "rclip")
- (version "1.10.2")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "rclip" version))
- (sha256
- (base32 "05cv5hp63x6ym12s1a5lb7najjyzrqk40rvmj8x2y32hxsf6ampn"))))
- (build-system pyproject-build-system)
- (native-inputs (list python-poetry-core-1.9.0))
- (propagated-inputs (list python-open-clip-torch
- python-pillow
- python-requests
- python-pytorch
- python-torchvision
- python-tqdm))
- (arguments
- '( #:phases
- (modify-phases %standard-phases
- (delete 'check) ;#TODO: see why this is broke
- (delete 'sanity-check) ;TODO: Fix broken sanity-check
- )))
- (home-page "https://github.com/yurijmikhalevich/rclip")
- (synopsis "AI-Powered Command-Line Photo Search Tool")
- (description "AI-Powered Command-Line Photo Search Tool")
- (license license:expat)))
-
-(define-public python-open-clip-torch
- (package
- (name "python-open-clip-torch")
- (version "2.24.0")
+ (name "ggml")
+ (version "589fed13a77d7e54435c2182384955706b60b841")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/mlfoundations/open_clip")
- (commit (string-append "v" version))
- ))
+ (url "https://github.com/ggerganov/ggml")
+ (recursive? #t)
+ (commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "0mby632z2qpahb8pd8cmn14bz4w1q0cngz7s6rmx2qwfg2fxf1ms"))))
- (build-system pyproject-build-system)
- (inputs (list python-ftfy
- python-huggingface-hub
- python-protobuf
- python-regex
- python-sentencepiece
- python-timm
- python-pytorch
- python-torchvision
- python-tqdm
- python-wheel
- ))
+ (base32
+ "1qzydmiqsdxhj7gmaxbzllhhnb7rw49ykkj03jm044spk9nnn56s"))))
+ (build-system cmake-build-system)
+ (inputs (list openblas))
(arguments
- '( #:phases
- (modify-phases %standard-phases
- (delete 'check) ;Networking required for checks, so disable them
- (delete 'sanity-check) ;TODO: Fix broken sanity-check
- )))
- (home-page "https://github.com/mlfoundations/open_clip")
- (synopsis "OpenCLIP")
- (description "@code{OpenCLIP}")
+ '(
+ #:tests? #f
+ ;#:cmake "--config Release"
+ #:configure-flags (list "-DGGML_OPENBLAS=ON -DGGML_BUILD_TESTS=OFF -DGGML_BUILD_EXAMPLES=OFF --config Release")
+ ))
+ (home-page "https://github.com/ggerganov/ggml/")
+ (synopsis "Tensor library for machine learning")
+ (description "Tensor library for machine learning in pure C/C++")
(license license:expat)))
-(define-public python-ftfy
- (package
- (name "python-ftfy")
- ;(version "6.2.0")
- (version "5.5.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "ftfy" version))
- (sha256
- ;(base32 "1h3m9i1c2qp874fpg62gcp39yqdhc5mrsqd29ja9gvr5f0y18hjy"))))
- (base32 "1ci6xrj4g01a97nymxpv9nj820nlmgzc4ybaz9k46i6bnxzpax7s"))))
- (build-system pyproject-build-system)
- (native-inputs (list poetry))
- (propagated-inputs (list python-wcwidth))
- (arguments
- '( #:phases
- (modify-phases %standard-phases
- (delete 'check)
- )))
- (home-page "")
- (synopsis "Fixes mojibake and other problems with Unicode, after the fact")
- (description
- "Fixes mojibake and other problems with Unicode, after the fact")
- (license license:asl2.0)))
-
-(define-public python-expecttest
+(define-public ggml-vulkan
(package
- (name "python-expecttest")
- (version "0.2.1")
- (source
- (origin
- (method url-fetch)
- (uri (pypi-uri "expecttest" version))
- (sha256
- (base32 "1xbkpcp3477ccgr4ks16v0j22i7a939bs2rajvk0cigqlvw1qaz5"))))
- (build-system pyproject-build-system)
+ (inherit ggml)
+ (name "ggml-vulkan")
+ (build-system cmake-build-system)
+ (inputs (list shaderc vulkan-headers vulkan-loader openlibm glibc))
(arguments
- (list
- #:phases #~(modify-phases %standard-phases (delete 'check))))
- (native-inputs (list poetry))
- (home-page "https://github.com/ezyang/expecttest")
- (synopsis "")
- (description "")
+ '(
+ #:tests? #f
+ ;#:cmake "--config Release"
+ #:configure-flags (list "-DGGML_VULKAN=ON -DGGML_BUILD_TESTS=OFF -DGGML_BUILD_EXAMPLES=OFF --config Release")
+ ))
+ (home-page "https://github.com/ggerganov/ggml/")
+ (synopsis "Tensor library for machine learning")
+ (description "Tensor library for machine learning in pure C/C++")
(license license:expat)))
-(define-public python-timm
+(define-public mlimgsynth
(package
- (name "python-timm")
- (version "0.9.16")
+ (name "mlimgsynth")
+ (version "fd351102a0c6719fe4437cb1bb834a87735861a1")
(source
(origin
- (method url-fetch)
- (uri (pypi-uri "timm" version))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/aagdev/mlimgsynth")
+ (recursive? #t)
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "1rkif1mkgryirn78aw9rkwplf3hzfqbw3c0slwqxynnmfprm87l9"))))
- (build-system pyproject-build-system)
+ (base32
+ "1gbppz9r0mjdis6gcvpkx3f4v0px7zz05k0cxkjq9s4v63xzr1p3"))))
+ (build-system gnu-build-system)
+ (inputs (list openblas ggml-vulkan libpng ijg-libjpeg))
(arguments
- (list
+ '(
+ #:tests? #f
+ #:make-flags (let* ((ggml-dir (assoc-ref %build-inputs "ggml-vulkan")))
+ (list (string-append "CC=gcc")
+ (string-append "GGML_INCLUDE_PATH=" ggml-dir "/include")
+ (string-append "GGML_LIB_PATH=" ggml-dir "/lib")))
#:phases
- #~(modify-phases %standard-phases
- (delete 'check) ;takes FOREVER for some reason
- (delete 'sanity-check ;Crashes; #TODO: fix this
- ))))
- (inputs (list python-huggingface-hub python-pyyaml
- python-safetensors python-pytorch
- python-torchvision python-pdm-backend
+ (modify-phases %standard-phases
+ (delete 'check)
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (install-file "mlimgsynth" (string-append out "/bin")))))
+ )
- python-pytest python-pytest-timeout python-expecttest python-pytest-xdist))
- (home-page "https://github.com/huggingface/pytorch-image-models")
- (synopsis "PyTorch Image Models")
- (description "@code{PyTorch} Image Models")
- (license license:asl2.0)))
+ )
+ )
+ (home-page "https://github.com/aagdev/mlimgsynth")
+ (synopsis " Image synthesis using machine learning")
+ (description "Generate images using Stable Diffusion (SD) models. This program is completely written in C and uses the GGML library. It is largely based in stable-diffusion.cpp, but with a focus in more concise and clear code.")
+ (license license:expat)))
-(define-public rust-memmap2-0.5
+(define-public stable-diffusion-cpp
(package
- (name "rust-memmap2")
- (version "0.5.0")
+ (name "stable-diffusion-cpp")
+ (version "10c6501bd05a697e014f1bee3a84e5664290c489")
(source
(origin
- (method url-fetch)
- (uri (crate-uri "memmap2" version))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/leejet/stable-diffusion.cpp.git")
+ (recursive? #t)
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
- (base32 "0vp9pxd20gyq8196v73chxdw6gfxz3g4lkdkvffd5slgawds2is6"))))
- (build-system cargo-build-system)
+ (base32
+ "0cd04iv0yfsc35l7z1kig6vm53b6c1v3mhyh7azrncy6afx2wwpi"))
+
+ (patches
+ (search-patches "aux-files/stable-diffusion-cpp/fixloras.patch"))
+ ))
+ (build-system cmake-build-system)
+ (inputs (list openblas git-minimal ))
(arguments
- `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)
- ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))
- #:cargo-development-inputs (("rust-owning-ref" ,rust-owning-ref-0.4)
- ("rust-tempdir" ,rust-tempdir-0.3))))
- (home-page "https://github.com/RazrFalcon/memmap2-rs")
- (synopsis "Cross-platform Rust API for memory-mapped file IO")
- (description "Cross-platform Rust API for memory-mapped file IO")
- (license (list license:expat license:asl2.0))))
+ '(
+ #:tests? #f
+ ;#:cmake "--config Release"
+ ;#:configure-flags (list "-DSD_CUBLAS=ON -DGGML_OPENBLAS=ON --config Release")
+ #:configure-flags (list "-DGGML_OPENBLAS=ON -DSD_FLASH_ATTN=ON --config Release")
+ )
+ )
+ (home-page "https://github.com/leejet/stable-diffusion.cpp")
+ (synopsis "Inference of Stable Diffusion in pure C/C++")
+ (description "Inference of Stable Diffusion in pure C/C++")
+ (license license:expat)))
-(define-public rust-safetensors-0.4
+(define-public stable-diffusion-cpp-vulkan
(package
- (name "rust-safetensors")
- (version "0.4.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "safetensors" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1vb9wsmsm7wfyvkl795wpc2iiwa3mx0vqhhym2q6yhrlzdmhx64d"))))
- (build-system cargo-build-system)
+ (inherit stable-diffusion-cpp)
+ (name "stable-diffusion-cpp-vulkan")
(arguments
- `(#:cargo-inputs (("rust-serde" ,rust-serde-1)
- ("rust-serde-json" ,rust-serde-json-1))
- #:cargo-development-inputs (("rust-criterion" ,rust-criterion-0.4)
- ("rust-memmap2" ,rust-memmap2-0.5)
- ("rust-proptest" ,rust-proptest-1))))
- (home-page "https://github.com/huggingface/safetensors")
- (synopsis
- "Provides functions to read and write safetensors which aim to be safer than
- their PyTorch counterpart.
- The format is 8 bytes which is an unsized int, being the size of a JSON header,
- the JSON header refers the `dtype` the `shape` and `data_offsets` which are the offsets
- for the values in the rest of the file.
- ")
- (description
- "This package provides functions to read and write safetensors which aim to be
- safer than their @code{PyTorch} counterpart. The format is 8 bytes which is an
- unsized int, being the size of a JSON header, the JSON header refers the `dtype`
- the `shape` and `data_offsets` which are the offsets for the values in the rest
- of the file.")
- (license license:asl2.0)))
+ `(
+ #:tests? #f
+ #:configure-flags (list "-DSD_VULKAN=ON --config Release")
+ #:phases (modify-phases %standard-phases
+ (add-after 'install 'rename-binary
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((bin (string-append (assoc-ref outputs "out") "/bin/sd")))
+ (when (file-exists? bin)
+ (rename-file bin (string-append (dirname bin) "/sd-vulkan")))))))))
+ (inputs (list vulkan-headers vulkan-loader shaderc libomp git-minimal))
+ ))
-(define-public python-safetensors
+(define-public exiv2-staticlibs
(package
- (name "python-safetensors")
- (version "0.4.2")
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/huggingface/safetensors.git")
- (commit (string-append "v" version))
- ))
- (file-name (git-file-name name version))
- (sha256
- (base32 "1gs0ivd5m95jyy6j1yqvm8pq068xsk405gv0nwq2821vr4ix9lw5"))))
- (build-system cargo-build-system)
+ (inherit exiv2)
(arguments
- (list
- #:imported-modules `(,@%cargo-build-system-modules
- ,@%pyproject-build-system-modules)
- #:modules '((guix build cargo-build-system)
- ((guix build pyproject-build-system) #:prefix py:)
- (guix build utils))
+ `(#:test-target "tests"
+ #:configure-flags (list "-DEXIV2_BUILD_UNIT_TESTS=ON"
+ ;; darktable needs BMFF to support
+ ;; CR3 files.
+ "-DEXIV2_ENABLE_BMFF=ON")
#:phases
- #~(modify-phases %standard-phases
- (add-before 'configure 'get-safetensor-cargo
- (lambda _
- (copy-recursively "bindings/python/Cargo.toml" "./Cargo.toml")
- (substitute* "./Cargo.toml" ( ("name = \"safetensors_rust\"") "name = \"safetensors_rust\"\npath = \"bindings/python//src/lib.rs\"" ) )
- (substitute* "./Cargo.toml" ( ("path = \"../../safetensors\"") "path = \"safetensors\"" ) )
- ))
- (add-after 'prepare-python-module 'build-python-module
- (assoc-ref py:%standard-phases 'build))
- (add-after 'build-python-module 'install-python-module
- (assoc-ref py:%standard-phases 'install))
- (add-after 'compress-documentation 'remove-bloat
- (lambda _
- (delete-file-recursively "target")
- (delete-file-recursively "attacks")
- (delete-file-recursively "safetensors")
- ))
- )
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-gcc-reference
+ (lambda _
+ ;; _GLIBCXX_ASSERTIONS brings reference to GCC.
+ (substitute* "cmake/compilerFlags.cmake"
+ (("add_compile_options[(]-Wp,-D_GLIBCXX_ASSERTIONS[)]")
+ ""))))
- #:cargo-inputs
- `(
- ;("rust-safetensors" ,rust-safetensors-0.4)
- ("rust-pyo3" ,rust-pyo3-0.20)
- ("rust-criterion" ,rust-criterion-0.5)
- ("rust-memmap2" ,rust-memmap2-0.5)
- ("rust-proptest" ,rust-proptest-1)
- ("rust-serde" ,rust-serde-1)
- ("rust-serde-json" ,rust-serde-json-1)
- )
- #:install-source? #false))
- (inputs
- (list maturin rust-safetensors-0.4 python-wheel))
- (native-inputs
- (list python-wrapper))
- (home-page "https://github.com/huggingface/safetensors")
- (synopsis "a new simple format for storing tensors safely")
- (description "This repository implements a new simple format for storing tensors safely (as opposed to pickle) and that is still fast (zero-copy).")
- (license license:asl2.0)))
+ ,@(if (or (target-ppc64le?)
+ (target-aarch64?)
+ (target-riscv64?))
+ '((add-after 'unpack 'adjust-tests
+ (lambda _
+ ;; Adjust test on ppc64 and aarch64, where no exception
+ ;; is raised and thus the return value is different. See
+ ;; <https://github.com/Exiv2/exiv2/issues/365> and
+ ;; <https://github.com/Exiv2/exiv2/issues/933>.
+ (substitute* "tests/bugfixes/github/test_CVE_2018_12265.py"
+ (("\\$uncaught_exception \\$addition_overflow_message\n") "")
+ (("retval = \\[1\\]") "retval = [0]")))))
+ '()))))
+ ))
-(define-public stable-diffusion-cpp
+(define-public stable-diffusion-cpp-gui-wx
(package
- (name "stable-diffusion-cpp")
- (version "9c51d8787f78ef1bd0ead1e8f48b766d7ee7484d")
+ (name "stable-diffusion-cpp-gui-wx")
+ (version "6f604f836961002fbce72a205c1e6cc6d6a531e9")
(source
(origin
(method git-fetch)
(uri (git-reference
- (url "https://github.com/leejet/stable-diffusion.cpp.git")
+ (url "https://github.com/fszontagh/sd.cpp.gui.wx")
(recursive? #t)
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
- "0rcnlrsbhnfhfz2pzn8gxnnpdyz03z8ds0wq5xfbgc86hmg0v286"))))
+ "035zqhjnwdb07ag4chj9zijl70wk81kinqwlnvs9ixb2fzl1z374"))))
(build-system cmake-build-system)
- (inputs (list openblas))
(arguments
'(
#:tests? #f
- ;#:cmake "--config Release"
- ;#:configure-flags (list "-DSD_CUBLAS=ON -DGGML_OPENBLAS=ON --config Release")
- #:configure-flags (list "-DGGML_OPENBLAS=ON -DSD_FLASH_ATTN=ON --config Release")
+ #:configure-flags
+ (list
+ "-DSD_AVX=ON"
+ "-DWXWIDGETS_VERSION=3.2.5"
+ (string-append "-DWXWIDGETS_EXTRA_PATH=" (assoc-ref %build-inputs "wxwidgets"))
+ )
+ #:substitutable? #f
)
)
- (home-page "https://github.com/leejet/stable-diffusion.cpp")
- (synopsis "Inference of Stable Diffusion in pure C/C++")
- (description "Inference of Stable Diffusion in pure C/C++")
- (license license:expat)))
+ (native-inputs (list pkg-config))
+ (inputs (list openblas openssl curl exiv2-staticlibs wxwidgets gtk+ pangomm git stable-diffusion-cpp))
+ (synopsis "cross-platform GUI for Stable Diffusion C++")
+ (description "A cross-platform GUI for Stable Diffusion C++, built using wxWidgets.")
+ (home-page "https://stable-diffusion.fsociety.hu")
+ (license license:expat)
+ ))
(define-public bark-cpp
(package
@@ -389,17 +332,24 @@
'(
#:tests? #f
#:configure-flags (list "-DGGML_OPENBLAS=ON --config Release")
- ;#:phases
- ;(modify-phases %standard-phases
- ; (add-after 'install 'install-main
- ; (lambda _
- ; (with-directory-excursion (string-append #$output "/bin")
- ; ;(symlink "main" "bark")
- ; (symlink "server" "bark-server")
- ; )
- ; )))
- )
- )
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-server
+ (lambda _
+ (with-directory-excursion (string-append #$output "/bin")
+ (symlink "server" "bark-server")
+ )
+ ))
+ ;(add-after 'install 'install-main
+ ; (lambda _
+ ; (with-directory-excursion (string-append #$output "/bin")
+ ; (symlink "main" "bark")
+ ; )
+ ; ))
+ ;
+ )
+
+ ))
(home-page "https://github.com/PABannier/bark.cpp")
(synopsis "Real-time realistic multilingual text-to-speech generation to the community.")
(description "With bark.cpp, our goal is to bring real-time realistic multilingual text-to-speech generation to the community.")
@@ -408,7 +358,7 @@
(define-public clip-cpp
(package
(name "clip-cpp")
- (version "f4ee24bb86680a27f83c8e8c70adbcf4cb776615")
+ (version "348b283cb6c2fc2bde450cc08a05a789dbe109e4")
(source
(origin
(method git-fetch)
@@ -419,7 +369,7 @@
(file-name (git-file-name name version))
(sha256
(base32
- "0wybslxzygs1bwdmiy9la0fzids112iiajb3ca6sjkhjp7nwakky"))))
+ "0xyjnzk8wgx77ip6k9969ljckxmaf165ypbh013hsrvgcrq9knrs"))))
(build-system cmake-build-system)
;(inputs (list openblas))
(arguments
@@ -483,3 +433,208 @@
(description "Inference of Stable Diffusion in pure C/C++")
(license license:expat)))
+(define-public clblast
+ (package
+ (name "clblast")
+ (version "1.6.3")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/CNugteren/CLBlast.git")
+ (commit version)
+ ))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1zp8rfkscnh4l9x71kp39hsg5zxfhkkf88886mv40hw0a1hafdvz"))
+ ))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'check)
+ )
+ ))
+ (inputs (list opencl-clhpp opencl-icd-loader))
+ (home-page "https://cnugteren.github.io/clblast")
+ (synopsis "Tuned OpenCL BLAS")
+ (description "CLBlast is a lightweight, performant and tunable OpenCL BLAS library written in C++11. It is designed to leverage the full performance potential of a wide variety of OpenCL devices from different vendors, including desktop and laptop GPUs, embedded GPUs, and other accelerators. CLBlast implements BLAS routines: basic linear algebra subprograms operating on vectors and matrices. See the CLBlast website for performance reports on some devices.")
+ (license license:asl2.0)))
+
+(define-public kobold-cpp
+ (package
+ (name "kobold-cpp")
+ (version "1.76")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/LostRuins/koboldcpp.git")
+ (commit (string-append "v" version))
+ ))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "155207vyxl2gh156gf0zs6ylkixrgr563cdfzkapcdhzj9lpsdfk"))
+ ))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:make-flags
+ #~(list
+ "LLAMA_OPENBLAS=1"
+ "LLAMA_CLBLAST=1"
+ "LLAMA_VULKAN=1"
+ (string-append "CC=" #$(cc-for-target))
+ )
+ #:modules '((ice-9 textual-ports)
+ (guix build utils)
+ ((guix build python-build-system) #:prefix python:)
+ (guix build gnu-build-system))
+ #:imported-modules `(,@%default-gnu-imported-modules
+ (guix build python-build-system))
+
+
+ #:phases
+ #~(modify-phases %standard-phases
+ ;(add-after 'unpack 'disable-unrunable-tests
+ ; ;; test-eval-callback downloads ML model from network, cannot
+ ; ;; run in Guix build environment
+ ; (lambda _
+ ; (substitute* '("examples/eval-callback/CMakeLists.txt")
+ ; (("add_test") "#add_test"))
+ ; (substitute* '("examples/eval-callback/CMakeLists.txt")
+ ; (("set_property") "#set_property"))))
+ (add-after 'build 'install-python-scripts
+ (lambda _
+ (let ((bin (string-append #$output "/bin/")))
+ (define (make-script script)
+ (let ((suffix (if (string-suffix? ".py" script) "" ".py")))
+ (call-with-input-file
+ (string-append script suffix)
+ (lambda (input)
+ (call-with-output-file (string-append bin script)
+ (lambda (output)
+ (format output "#!~a/bin/python3\n~a"
+ #$(this-package-input "python")
+ (get-string-all input))))))
+ (chmod (string-append bin script) #o555)))
+ (make-script "koboldcpp.py")
+ ;(make-script "convert-hf-to-gguf")
+ ;(make-script "convert-llama-ggml-to-gguf")
+ ;(make-script "convert-hf-to-gguf-update.py")
+ )))
+ (add-after 'build 'install-compiled
+ (lambda _
+ (mkdir-p (string-append #$output "/lib"))
+ (mkdir-p (string-append #$output "/bin"))
+ (for-each (lambda (f)
+ (install-file f (string-append #$output "/lib"))) (find-files "." "\\.so$"))
+ (for-each (lambda (f)
+ (install-file f (string-append #$output "/bin"))) (find-files "." "\\.py$"))))
+ ;(add-after 'install-compiled 'wrap-python-scripts
+ ; ;(assoc-ref python:%standard-phases 'wrap)
+ ; (add-after 'wrap-python-scripts 'wrap-for-local-libs
+ ; (lambda _
+ ; (wrap-program (string-append #$output "/bin/koboldcpp.py")
+ ; '("PATH" ":" suffix (string-append #$output "/lib/")))
+ ; )
+ ; )
+ (delete 'configure)
+ (delete 'check)
+ (delete 'install) ;Only running "make" is necssary for install.
+ )))
+ (inputs (list python))
+ (native-inputs (list pkg-config gcc-toolchain))
+ (propagated-inputs
+ (list python-numpy python-pytorch python-sentencepiece openblas clblast opencl-clhpp opencl-icd-loader vulkan-headers vulkan-loader python-gguf python-customtkinter findutils))
+ (properties '((tunable? . #true))) ;use AVX512, FMA, etc. when available
+ (home-page "https://github.com/lostruins/koboldcpp")
+ (synopsis " A simple one-file way to run various GGML and GGUF models with a KoboldAI UI.")
+ (description "KoboldCpp is an easy-to-use AI text-generation software for GGML and GGUF models, inspired by the original KoboldAI. It's a single self-contained distributable from Concedo, that builds off llama.cpp, and adds a versatile KoboldAI API endpoint, additional format support, Stable Diffusion image generation, speech-to-text, backward compatibility, as well as a fancy UI with persistent stories, editing tools, save formats, memory, world info, author's note, characters, scenarios and everything KoboldAI and KoboldAI Lite have to offer.")
+ (license license:agpl3)))
+(define-public python-gguf
+ (package
+ (name "python-gguf")
+ (version "0.9.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "gguf" version))
+ (sha256
+ (base32 "0fyk7x6b2a7xjmf3q7zb61ik1yrk80xm7xx9yr2wa6avw63hkrzm"))))
+ (build-system pyproject-build-system)
+ (arguments
+ '( #:phases
+ (modify-phases %standard-phases
+ (delete 'check) ;#TODO: see why this is broke
+ (delete 'sanity-check) ;TODO: Fix broken sanity-check
+ )))
+ (native-inputs (list poetry))
+ (propagated-inputs (list python-numpy python-tqdm))
+ (home-page "https://ggml.ai")
+ (synopsis "Read and write ML models in GGUF for GGML")
+ (description "Read and write ML models in GGUF for GGML.")
+ (license #f)))
+
+(define-public python-darkdetect
+ (package
+ (name "python-darkdetect")
+ (version "0.8.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "darkdetect" version))
+ (sha256
+ (base32 "1cgqgpz36dfn7hsqc29ha9pmxmzdjlwdq9aclkgbagi6f08qwhmm"))))
+ (build-system pyproject-build-system)
+ (arguments
+ '( #:phases
+ (modify-phases %standard-phases
+ (delete 'check) ;#TODO: see why this is broke
+ (delete 'sanity-check) ;TODO: Fix broken sanity-check
+ )))
+ (home-page "")
+ (synopsis "Detect OS Dark Mode from Python")
+ (description "Detect OS Dark Mode from Python.")
+ (license #f)))
+
+(define-public python-customtkinter
+ (package
+ (name "python-customtkinter")
+ (version "5.2.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "customtkinter" version))
+ (sha256
+ (base32 "01yjv09r3cbdk09vamh7cdc5iqn2nj0bl383wqp9h74nzaxb73gx"))))
+ (build-system pyproject-build-system)
+ (arguments
+ '( #:phases
+ (modify-phases %standard-phases
+ (delete 'check) ;#TODO: see why this is broke
+ (delete 'sanity-check) ;TODO: Fix broken sanity-check
+ )))
+ (propagated-inputs (list python-darkdetect python-packaging
+ python-typing-extensions))
+ (home-page "https://customtkinter.tomschimansky.com")
+ (synopsis "Create modern looking GUIs with Python")
+ (description "Create modern looking GUIs with Python.")
+ (license #f)))
+(define-public python-rubbrband
+ (package
+ (name "python-rubbrband")
+ (version "0.2.19")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "rubbrband" version))
+ (sha256
+ (base32 "1sv7y2wvnmb0mabdbzwg0q6cf9mjkrik68dnbl3qa0slf8z7biy7"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-pillow python-requests))
+ (home-page "https://github.com/rubbrband/rubbrband")
+ (synopsis "")
+ (description #f)
+ (license #f)))
diff --git a/messaging.scm b/messaging.scm
new file mode 100644
index 0000000..722ba79
--- /dev/null
+++ b/messaging.scm
@@ -0,0 +1,322 @@
+(define-module (messaging)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (gnu packages admin)
+ #:use-module (gnu packages aidc)
+ #:use-module (gnu packages aspell)
+ #:use-module (gnu packages audio)
+ #:use-module (gnu packages autotools)
+ #:use-module (gnu packages avahi)
+ #:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
+ #:use-module (gnu packages bison)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages certs)
+ #:use-module (gnu packages check)
+ #:use-module (gnu packages code)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages cpp)
+ #:use-module (gnu packages crypto)
+ #:use-module (gnu packages curl)
+ #:use-module (gnu packages cyrus-sasl)
+ #:use-module (gnu packages databases)
+ #:use-module (gnu packages docbook)
+ #:use-module (gnu packages documentation)
+ #:use-module (gnu packages enchant)
+ #:use-module (gnu packages erlang)
+ #:use-module (gnu packages erlang-xyz)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages freedesktop)
+ #:use-module (gnu packages gettext)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnupg)
+ #:use-module (gnu packages golang)
+ #:use-module (gnu packages golang-build)
+ #:use-module (gnu packages golang-check)
+ #:use-module (gnu packages golang-compression)
+ #:use-module (gnu packages golang-crypto)
+ #:use-module (gnu packages golang-web)
+ #:use-module (gnu packages golang-xyz)
+ #:use-module (gnu packages gperf)
+ #:use-module (gnu packages graphviz)
+ #:use-module (gnu packages gstreamer)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages guile)
+ #:use-module (gnu packages hunspell)
+ #:use-module (gnu packages icu4c)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages imagemagick)
+ #:use-module (gnu packages kde)
+ #:use-module (gnu packages kde-frameworks)
+ #:use-module (gnu packages kerberos)
+ #:use-module (gnu packages less)
+ #:use-module (gnu packages libcanberra)
+ #:use-module (gnu packages libevent)
+ #:use-module (gnu packages libffi)
+ #:use-module (gnu packages libidn)
+ #:use-module (gnu packages linux)
+ #:use-module (gnu packages logging)
+ #:use-module (gnu packages lua)
+ #:use-module (gnu packages man)
+ #:use-module (gnu packages markup)
+ #:use-module (gnu packages matrix)
+ #:use-module (gnu packages messaging)
+ #:use-module (gnu packages mpd)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages networking)
+ #:use-module (gnu packages nss)
+ #:use-module (gnu packages password-utils)
+ #:use-module (gnu packages pcre)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages photo)
+ #:use-module (gnu packages php)
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages protobuf)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages python-build)
+ #:use-module (gnu packages python-check)
+ #:use-module (gnu packages python-crypto)
+ #:use-module (gnu packages python-web)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages qt)
+ #:use-module (gnu packages readline)
+ #:use-module (gnu packages regex)
+ #:use-module (gnu packages ruby)
+ #:use-module (gnu packages sphinx)
+ #:use-module (gnu packages sqlite)
+ #:use-module (gnu packages tcl)
+ #:use-module (gnu packages telephony)
+ #:use-module (gnu packages texinfo)
+ #:use-module (gnu packages textutils)
+ #:use-module (gnu packages tls)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages vulkan)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages xdisorg)
+ #:use-module (gnu packages xiph)
+ #:use-module (gnu packages xml) #:use-module (gnu packages xorg)
+ #:use-module (gnu packages)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
+ #:use-module (guix build-system glib-or-gtk)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix build-system go)
+ #:use-module (guix build-system meson)
+ #:use-module (guix build-system perl)
+ #:use-module (guix build-system pyproject)
+ #:use-module (guix build-system python)
+ #:use-module (guix build-system qt)
+ #:use-module (guix build-system rebar)
+ #:use-module (guix build-system trivial)
+ #:use-module (guix download)
+ #:use-module (guix gexp)
+ #:use-module (guix git-download)
+ #:use-module (guix hg-download)
+ #:use-module (guix packages)
+ #:use-module (guix utils))
+
+(define-public psi-plus-webengine
+ (package
+ (inherit psi-plus)
+ (name "psi-plus-webengine")
+
+ (arguments
+ `(#:tests? #f ; No target
+ #:imported-modules
+ (,@%qt-build-system-modules
+ (guix build glib-or-gtk-build-system))
+ #:modules
+ ((guix build qt-build-system)
+ ((guix build glib-or-gtk-build-system)
+ #:prefix glib-or-gtk:)
+ (guix build utils))
+ #:configure-flags
+ (list
+ "-DBUILD_PSIMEDIA=ON" ; For A/V support
+ "-DENABLE_PLUGINS=ON"
+ "-DUSE_HUNSPELL=OFF" ; Use Enchant instead
+ "-DUSE_ENCHANT=ON"
+ "-DCHAT_TYPE=webengine"
+ "-DUSE_CCACHE=OFF") ; Not required
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-source
+ (lambda _
+ (substitute* "CMakeLists.txt"
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/http-parser/http_parser.h")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qhttp/qhttp.pro")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qite/qite.pro")
+ "")
+ (("add_subdirectory\\( 3rdparty \\)")
+ ""))
+ (substitute* "src/CMakeLists.txt"
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qite/libqite")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/http-parser")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qhttp/src/private")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qhttp/src")
+ "")
+ (("\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty")
+ "")
+ (("add_dependencies\\(\\$\\{PROJECT_NAME\\} qhttp\\)")
+ "target_link_libraries(${PROJECT_NAME} qhttp)"))
+ (substitute* "src/src.cmake"
+ (("include\\(\\$\\{PROJECT_SOURCE_DIR\\}/3rdparty/qite/libqite/libqite.cmake\\)")
+ "list(APPEND EXTRA_LIBS qite)"))
+ (substitute* '("src/filesharingmanager.h" "src/widgets/psirichtext.cpp"
+ "src/filesharingmanager.cpp" "src/widgets/psitextview.cpp"
+ "src/chatview_te.cpp" "src/msgmle.cpp")
+ (("qite.h")
+ "qite/qite.h")
+ (("qiteaudio.h")
+ "qite/qiteaudio.h")
+ (("qiteaudiorecorder.h")
+ "qite/qiteaudiorecorder.h"))))
+ (add-after 'install 'wrap-env
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (for-each
+ (lambda (name)
+ (let ((file (string-append out "/bin/" name))
+ (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))
+ (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+ (wrap-program file
+ `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path))
+ `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
+ '("psi-plus")))))
+ (add-after 'wrap-env 'glib-or-gtk-compile-schemas
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+ (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap
+ (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
+ (inputs (modify-inputs (package-inputs psi-plus)
+ (prepend qtwebengine-5)))
+ ))
+
+(define-public discord-purple
+ (let ((commit "c5dfbe0e1fd7de1f2adbf672f653f67e39686044")
+ (revision "0"))
+ (package
+ (name "discord-purple")
+ (version (git-version "1.0" revision commit))
+ (home-page "https://github.com/EionRobb/purple-discord/")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/EionRobb/purple-discord")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "07w06ack6blzi2yd5slj8ib34dw41hdw6179y8503dxvbzcb16q4"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Adjust the makefile to install files in the right place.
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile"
+ (("DISCORD_DEST = .*")
+ (string-append "DISCORD_DEST = " out
+ "/lib/purple-2\n"))
+ (("DISCORD_ICONS_DEST = .*")
+ (string-append "DISCORD_ICONS_DEST = "
+ out
+ "/share/pixmaps/pidgin/protocols\n"))
+ (("LOCALE_DEST = .*")
+ (string-append "LOCALE_DEST = "
+ out
+ "/share/locale/\n"))
+
+ )
+ #t))))
+ #:make-flags (list "CC=gcc"
+ ,(string-append "PLUGIN_VERSION=" version))
+ #:tests? #f))
+ (inputs
+ (list pidgin
+ libgcrypt
+ libwebp
+ glib
+ gtk+-2
+ zlib
+ json-glib
+ nss
+ qrencode
+ ))
+ (native-inputs
+ (list pkg-config
+ gettext-minimal
+ imagemagick
+ which))
+ (synopsis "Discord messaging support for Pidgin")
+ (description
+ "A libpurple/Pidgin plugin for Discord")
+ (license license:gpl3))))
+
+(define-public matrix-purple
+ (let ((commit "442003b9f16c4c4222ed36f871fcd018551fdc3f")
+ (revision "0"))
+ (package
+ (name "matrix-purple")
+ (version (git-version "1.0" revision commit))
+ (home-page "https://github.com/EionRobb/purple-matrix")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/EionRobb/purple-matrix")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0b0gfvn9d82ynmnzq5vw28yrnp22qsmyp4lfaja6qr25aqdy943m"))
+ (patches
+ (search-patches "aux-files/matrix-purple/fix-g_memdup.patch"))
+ ))
+ (build-system gnu-build-system)
+(arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; Adjust the makefile to install files in the right place.
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "Makefile"
+ (("PLUGIN_DIR_PURPLE\t= .*")
+ (string-append "PLUGIN_DIR_PURPLE\t= " out "/lib/purple-2\n"))
+ (("DATA_ROOT_DIR_PURPLE\t= .*")
+ (string-append "DATA_ROOT_DIR_PURPLE\t= " out "/lib/purple-2\n")))
+ #t))))
+
+
+ #:make-flags (list "CC=gcc"
+ ,(string-append "PLUGIN_VERSION=" version))
+ #:tests? #f))
+ (inputs
+ (list pidgin
+ libgcrypt
+ libwebp
+ glib
+ gtk+-2
+ zlib
+ json-glib
+ nss
+ sqlite
+ libolm
+ http-parser
+ ))
+ (native-inputs
+ (list pkg-config
+ gettext-minimal
+ imagemagick
+ which
+
+ coreutils
+ ))
+ (synopsis "Discord messaging support for Pidgin")
+ (description
+ "A libpurple/Pidgin plugin for Discord")
+ (license license:gpl3))))
diff --git a/prismlauncher-gpu.scm b/prismlauncher-gpu.scm
deleted file mode 100644
index bc03b05..0000000
--- a/prismlauncher-gpu.scm
+++ /dev/null
@@ -1,83 +0,0 @@
-(define-module (prismlauncher-gpu)
- #:use-module (guix build-system cmake)
- #:use-module (gnu packages bash)
- #:use-module (gnu packages compression)
- #:use-module (gnu packages pulseaudio)
- #:use-module (gnu packages qt)
- #:use-module (gnu packages xorg)
- #:use-module (gnu packages gl)
- #:use-module (gnu packages java)
- #:use-module (gnu packages kde-frameworks)
- #:use-module (guix packages)
- #:use-module (guix gexp)
- #:use-module (guix git-download)
- #:use-module ((guix licenses) :prefix license:)
- #:use-module ((nonguix licenses) :prefix non-license:))
-
-(define-public prismlauncher-gpu
- (package
- (name "prismlauncher-gpu")
- (version "8.3")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/PrismLauncher/PrismLauncher")
- (recursive? #t)
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1iba8rl8vi6ivn024327yv59vbi89n67ml4vy8wcw0w9hczkjhis"))))
- (build-system cmake-build-system)
- (arguments
- `(#:configure-flags
- (list "-DLauncher_QT_VERSION_MAJOR=5")
- #:phases
- (modify-phases %standard-phases
- (add-after 'install 'patch-paths
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin/prismlauncher"))
- (xrandr (assoc-ref inputs "xrandr"))
- (qtwayland (assoc-ref inputs "qtwayland")))
- (wrap-program bin
- `("PATH" ":" prefix (,(string-append xrandr "/bin")))
- `("QT_PLUGIN_PATH" ":" prefix (,(string-append
- qtwayland "/lib/qt5/plugins"))))
- #t))))))
- (native-inputs (list extra-cmake-modules))
- (inputs (list bash-minimal ; for wrap-program
- zlib
- qtbase-5
- qtwayland
- xrandr
- libx11
- libxext
- libxcursor
- libxrandr
- libxxf86vm
- pulseaudio
- mesa
- glfw
- ))
- (propagated-inputs (list `(,openjdk17 "jdk")))
- (home-page "https://prismlauncher.org/")
- (synopsis "Free, open source launcher for Minecraft")
- (description
- "Allows you to have multiple, separate instances of Minecraft (each with
-their own mods, texture packs, saves, etc), and helps you manage them and
-their associated options with a simple interface.")
- (license (list license:gpl3 ; PolyMC, launcher
- license:expat ; MinGW runtime, lionshead, tomlc99
- license:lgpl3 ; Qt 5/6
- license:lgpl3+ ; libnbt++
- license:lgpl2.1+ ; rainbow (KGuiAddons)
- license:isc ; Hoedown
- license:silofl1.1 ; Material Design Icons
- license:lgpl2.1 ; Quazip
- license:public-domain ; xz-minidec, murmur2, xz-embedded
- license:bsd-3 ; ColumnResizer, O2 (Katabasis fork),
- ; gamemode, localpeer
- license:asl2.0 ; classparser, systeminfo
- ;; Batch icon set:
- (non-license:nonfree "file://COPYING.md")))))
diff --git a/python-xyz.scm b/python-xyz.scm
index 73cb686..d15e9a5 100644
--- a/python-xyz.scm
+++ b/python-xyz.scm
@@ -8,10 +8,14 @@
#:use-module (guix gexp)
#:use-module (gnu packages)
#:use-module (gnu packages wget)
+ #:use-module (gnu packages web)
#:use-module (gnu packages video)
#:use-module (gnu packages python-web)
+ #:use-module (gnu packages python-check)
+ #:use-module (gnu packages check)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-build)
+ #:use-module (gnu packages python-science)
#:use-module (sherlock)
)
(define-public comedyGenerator
@@ -27,7 +31,7 @@
(sha256
(base32
"1mi33n9l0pshn1vnxcr56p5ldx1zr178dmaibz5ggqz7m347cj25"))))
- (build-system pyproject-build-system)
+ (build-system python-build-system)
(arguments
'(
#:phases
@@ -38,7 +42,7 @@
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((ffmpeg (string-append (assoc-ref inputs "ffmpeg") "/bin" )))
(wrap-program (string-append (assoc-ref outputs "out") "/bin/comedyGenerator")
- `("PATH" ":" prefix ,(list ffmpeg) ) ))))
+ `("PATH" ":" prefix ,(list ffmpeg) ) ))))
)))
(inputs
@@ -57,7 +61,7 @@
(define-public stashley
(package
(name "stashley")
- (version "2.0.2")
+ (version "2.0.4")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -66,8 +70,8 @@
(file-name (git-file-name name version))
(sha256
(base32
- "1rdzgf6cynnmyy3fwkbyvffpz7vkqsa2isp1dblrqas0arqgplqh"))))
- (build-system pyproject-build-system)
+ "1d83w8yb7570b9pdsj44vcflzs8a6hh0zcmkf076hx4s837bmqbl"))))
+ (build-system python-build-system)
(arguments
'(
#:phases
@@ -90,3 +94,135 @@
TOML files, and if IPFS is installed, pushing them to IPFS.")
(home-page "https://git.techchud.xyz/stashley/")
(license license:agpl3)))
+(define-public python-imagehash
+ (package
+ (name "python-imagehash")
+ (version "4.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "ImageHash" version))
+ (sha256
+ (base32 "0w5ay3dblgn0ijg4mwmmq13a759by1bakh6q7pmmnn70z6vx2f3h"))))
+ (arguments
+ '( #:phases
+ (modify-phases %standard-phases
+ (delete 'check) ;Networking required for checks, so disable them
+ )))
+
+ (build-system python-build-system)
+ (propagated-inputs (list python-numpy python-pillow python-pywavelets
+ python-scipy))
+ (home-page "https://github.com/JohannesBuchner/imagehash")
+ (synopsis "Image Hashing library")
+ (description "Image Hashing library.")
+ (license #f)))
+
+(define-public python-httrack-py
+ (package
+ (name "python-httrack-py")
+ (version "0.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "httrack-py" version))
+ (sha256
+ (base32 "01s6ahn1mfnxcj602s8p6p1yxfigjwm8cqc1wlbfvxmrb0vb2isw"))))
+ (build-system python-build-system)
+(arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'apply-patch
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "src/httrack-py.c"
+ (("#include \"htscore.h\"") ""))))
+ (add-before 'build 'set-cflags
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CFLAGS" (string-append "-I" (assoc-ref inputs "httrack") "/include/httrack")))))))
+ (native-inputs (list python-setuptools python-wheel))
+ (inputs (list httrack))
+ (home-page "http://code.google.com/p/httrack-py/")
+ (synopsis "httrack-py library: wrapper to use httrack website copier")
+ (description "httrack-py library: wrapper to use httrack website copier.")
+ (license license:gpl2)))
+
+(define-public python-hsh
+ (package
+ (name "python-hsh")
+ (version "1.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "hsh" version))
+ (sha256
+ (base32 "11fznnb3vl6xplg2gvphrmglyw3s41r4jg5skl1gpslgafn46kn0"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-commandlines))
+ (native-inputs (list python-setuptools python-wheel))
+ (home-page "https://github.com/chrissimpkins/hsh")
+ (synopsis "Simple file hash digests and file integrity checks")
+ (description "Simple file hash digests and file integrity checks.")
+ (license license:expat)))
+
+(define-public python-proglog
+ (package
+ (name "python-proglog")
+ (version "0.1.10")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "proglog" version))
+ (sha256
+ (base32 "1d6s9mg2fr3dr30x05cvsvw25kpakkzqyj2zyarawk1fr34ji335"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-tqdm))
+ (native-inputs (list python-setuptools python-wheel))
+ (home-page "")
+ (synopsis "Log and progress bar manager for console, notebooks, web...")
+ (description "Log and progress bar manager for console, notebooks, web...")
+ (license license:expat)))
+
+(define-public python-moviepy
+ (package
+ (name "python-moviepy")
+ (version "2.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "moviepy" version))
+ (sha256
+ (base32 "0xzf73hnib7aqhblidqg0vhq4l60czgr21z8kynyl1znf9s7mi92"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-decorator
+ python-imageio
+ python-imageio-ffmpeg
+ python-numpy
+ python-pillow
+ python-proglog
+ python-dotenv))
+ (native-inputs (list python-coveralls python-pytest python-pytest-cov
+ python-setuptools python-wheel))
+ (home-page "https://github.com/Zulko/moviepy")
+ (synopsis "Video editing with Python")
+ (description "Video editing with Python.")
+ (license license:expat)))
+
+(define-public python-pymatting
+ (package
+ (name "python-pymatting")
+ (version "1.1.13")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pymatting" version))
+ (sha256
+ (base32 "00c1ad1glgb11055rbh8sqwycb979biyhbfwg96yzpdcxx5prnrc"))))
+ (build-system python-build-system)
+ (propagated-inputs (list python-numba python-numpy python-pillow
+ python-scipy))
+ (native-inputs (list python-setuptools python-wheel))
+ (home-page "https://pymatting.github.io")
+ (synopsis "Python package for alpha matting.")
+ (description "Python package for alpha matting.")
+ (license license:expat)))
+
diff --git a/ruby-xyz.scm b/ruby-xyz.scm
new file mode 100644
index 0000000..03b68dd
--- /dev/null
+++ b/ruby-xyz.scm
@@ -0,0 +1,530 @@
+(define-module (ruby-xyz)
+ #:use-module ((guix licenses) :prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix build-system ruby)
+ #:use-module (guix download)
+ #:use-module (guix git-download)
+ #:use-module (guix gexp)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages ruby)
+ #:use-module (gnu packages web)
+ #:use-module (gnu packages compression)
+ #:use-module (sherlock)
+ )
+(define-public ruby-whirly
+ (package
+ (name "ruby-whirly")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "whirly" version))
+ (sha256
+ (base32 "0dggm1jkk9hlwnh5la3zsmsh4qv7n1ycmsnakl0lgdmpzgj3w9zm"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (propagated-inputs (list ruby-unicode-display-width-1.3.0))
+ (synopsis
+ "Simple terminal spinner with support for custom spinners. Includes spinners from npm's cli-spinners.")
+ (description
+ "Simple terminal spinner with support for custom spinners. Includes spinners
+ from npm's cli-spinners.")
+ (home-page "https://github.com/janlelis/whirly")
+ (license license:expat)))
+
+(define-public ruby-unicode-utils
+ (package
+ (name "ruby-unicode-utils")
+ (version "1.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "unicode_utils" version))
+ (sha256
+ (base32 "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (synopsis "additional Unicode aware functions for Ruby 1.9")
+ (description "additional Unicode aware functions for Ruby 1.9.")
+ (home-page "http://github.com/lang/unicode_utils")
+ (license #f)))
+
+(define-public ruby-strings-ansi
+ (package
+ (name "ruby-strings-ansi")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "strings-ansi" version))
+ (sha256
+ (base32 "120wa6yjc63b84lprglc52f40hx3fx920n4dmv14rad41rv2s9lh"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (synopsis "Methods for processing ANSI escape codes in strings.")
+ (description
+ "This package provides methods for processing ANSI escape codes in strings.")
+ (home-page "https://github.com/piotrmurach/strings-ansi")
+ (license license:expat)))
+
+(define-public ruby-strings
+ (package
+ (name "ruby-strings")
+ (version "0.1.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "strings" version))
+ (sha256
+ (base32 "06wrzj3yakfk021xblgcb27spxx3jiz23m82z0i9szwyxkhhga4k"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (propagated-inputs (list ruby-strings-ansi ruby-unicode-display-width-1.3.0
+ ruby-unicode-utils))
+ (synopsis
+ "A set of methods for working with strings such as align, truncate, wrap and many more.")
+ (description
+ "This package provides a set of methods for working with strings such as align,
+ truncate, wrap and many more.")
+ (home-page "https://github.com/piotrmurach/strings")
+ (license license:expat)))
+
+(define-public ruby-tty-table
+ (package
+ (name "ruby-tty-table")
+ (version "0.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "tty-table" version))
+ (sha256
+ (base32 "05krrj1x5pmfbz74paszrsr1316w9b9jlc4wpd9s9gpzqfzwjzcg"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (propagated-inputs (list ruby-pastel ruby-strings ruby-tty-screen))
+ (synopsis "A flexible and intuitive table generator")
+ (description
+ "This package provides a flexible and intuitive table generator.")
+ (home-page "https://ttytoolkit.org")
+ (license license:expat)))
+
+(define-public ruby-wisper
+ (package
+ (name "ruby-wisper")
+ (version "1.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "wisper" version))
+ (sha256
+ (base32 "19bw0z1qw1dhv7gn9lad25hgbgpb1bkw8d599744xdfam158ms2s"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (synopsis
+ " A micro library providing objects with Publish-Subscribe capabilities.
+ Both synchronous (in-process) and asynchronous (out-of-process) subscriptions are supported.
+ Check out the Wiki for articles, guides and examples: https://github.com/krisleech/wisper/wiki
+ ")
+ (description
+ "This package provides a micro library providing objects with Publish-Subscribe
+ capabilities. Both synchronous (in-process) and asynchronous (out-of-process)
+ subscriptions are supported. Check out the Wiki for articles, guides and
+ examples: https://github.com/krisleech/wisper/wiki.")
+ (home-page "https://github.com/krisleech/wisper")
+ (license license:expat)))
+
+(define-public ruby-tty-cursor
+ (package
+ (name "ruby-tty-cursor")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "tty-cursor" version))
+ (sha256
+ (base32 "07whfm8mnp7l49s2cm2qy1snhsqq3a90sqwb71gvym4hm2kx822a"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (synopsis
+ "The purpose of this library is to help move the terminal cursor around and manipulate text by using intuitive method calls.")
+ (description
+ "The purpose of this library is to help move the terminal cursor around and
+ manipulate text by using intuitive method calls.")
+ (home-page "https://ttytoolkit.org")
+ (license license:expat)))
+
+(define-public ruby-tty-reader
+ (package
+ (name "ruby-tty-reader")
+ (version "0.9.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "tty-reader" version))
+ (sha256
+ (base32 "1cf2k7w7d84hshg4kzrjvk9pkyc2g1m3nx2n1rpmdcf0hp4p4af6"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (propagated-inputs (list ruby-tty-cursor ruby-tty-screen ruby-wisper))
+ (synopsis
+ "A set of methods for processing keyboard input in character, line and multiline modes. It maintains history of entered input with an ability to recall and re-edit those inputs. It lets you register to listen for keystroke events and trigger custom key events yourself.")
+ (description
+ "This package provides a set of methods for processing keyboard input in
+ character, line and multiline modes. It maintains history of entered input with
+ an ability to recall and re-edit those inputs. It lets you register to listen
+ for keystroke events and trigger custom key events yourself.")
+ (home-page "https://ttytoolkit.org")
+ (license license:expat)))
+
+(define-public ruby-tty-prompt
+ (package
+ (name "ruby-tty-prompt")
+ (version "0.12.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "tty-prompt" version))
+ (sha256
+ (base32 "1026nyqhgmgxi2nmk8xk3hca07gy5rpisjs8y6w00wnw4f01kpv0"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (propagated-inputs (list ruby-pastel ruby-tty-reader))
+ (synopsis
+ "A beautiful and powerful interactive command line prompt with a robust API for getting and validating complex inputs.")
+ (description
+ "This package provides a beautiful and powerful interactive command line prompt
+ with a robust API for getting and validating complex inputs.")
+ (home-page "https://ttytoolkit.org")
+ (license license:expat)))
+
+(define-public ruby-httpclient-fixcerts
+ (package
+ (name "ruby-httpclient-fixcerts")
+ (version "2.8.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "httpclient-fixcerts" version))
+ (sha256
+ (base32 "1zfszylh51y8ic8sbff3mwf30jb0gj270r5nxkcm1ydxad19w6sl"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (synopsis
+ "gives something like the functionality of libwww-perl (LWP) in Ruby")
+ (description
+ "gives something like the functionality of libwww-perl (LWP) in Ruby.")
+ (home-page "https://github.com/nahi/httpclient")
+ (license #f)))
+
+(define-public neocities
+ (package
+ (name "neocities")
+ (version "0.0.20")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "neocities" version))
+ (sha256
+ (base32 "17d5z0c04yx2a6g8bdkhiwyf5xvshdx4p07j2xlip8dnkkf9q4hw"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (propagated-inputs (list ruby-httpclient-fixcerts
+ ruby-pastel
+ ruby-rake
+ ruby-tty-prompt
+ ruby-necromancer
+ ruby-tty-table
+ ruby-equatable
+ ruby-whirly))
+ (synopsis "Neocities.org CLI and API client")
+ (description "Neocities.org CLI and API client.")
+ (home-page "https://neocities.org")
+ (license license:expat)))
+
+(define-public ruby-equatable
+ (package
+ (name "ruby-equatable")
+ (version "0.5.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "equatable" version))
+ (sha256
+ (base32 "1sjm9zjakyixyvsqziikdrsqfzis6j3fq23crgjkp6fwkfgndj7x"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (synopsis
+ "Provide equality comparison methods for objects based on their attributes by generating implementations for the ==, eql?, hash and inspect methods.")
+ (description
+ "Provide equality comparison methods for objects based on their attributes by
+generating implementations for the ==, eql?, hash and inspect methods.")
+ (home-page "https://github.com/piotrmurach/equatable")
+ (license license:expat)))
+
+(define-public ruby-necromancer
+ (package
+ (name "ruby-necromancer")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "necromancer" version))
+ (sha256
+ (base32 "0v9nhdkv6zrp7cn48xv7n2vjhsbslpvs0ha36mfkcd56cp27pavz"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (synopsis
+ "Conversion from one object type to another with a bit of black magic.")
+ (description
+ "Conversion from one object type to another with a bit of black magic.")
+ (home-page "https://github.com/piotrmurach/necromancer")
+ (license license:expat)))
+(define-public ruby-pastel
+ (package
+ (name "ruby-pastel")
+ (version "0.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "pastel" version))
+ (sha256
+ (base32 "1yf30d9kzpm96gw9kwbv31p0qigwfykn8qdis5950plnzgc1vlp1"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (propagated-inputs (list ruby-equatable ruby-tty-color))
+ (synopsis "Terminal strings styling with intuitive and clean API.")
+ (description "Terminal strings styling with intuitive and clean API.")
+ (home-page "https://ttytoolkit.org")
+ (license license:expat)))
+(define-public ruby-pastel
+ (package
+ (name "ruby-pastel")
+ (version "0.7.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "pastel" version))
+ (sha256
+ (base32 "1yf30d9kzpm96gw9kwbv31p0qigwfykn8qdis5950plnzgc1vlp1"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (propagated-inputs (list ruby-equatable ruby-tty-color))
+ (synopsis "Terminal strings styling with intuitive and clean API.")
+ (description "Terminal strings styling with intuitive and clean API.")
+ (home-page "https://ttytoolkit.org")
+ (license license:expat)))
+
+(define-public ruby-tty-color
+ (package
+ (name "ruby-tty-color")
+ (version "0.4.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "tty-color" version))
+ (sha256
+ (base32 "103ahv1s5g14vrjj4byfk5j1cs3sipn0dd9imrfjh17gsl0vmqj3"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (synopsis "Terminal color capabilities detection")
+ (description "Terminal color capabilities detection.")
+ (home-page "https://ttytoolkit.org")
+ (license license:expat)))
+
+(define-public ruby-tty-screen
+ (package
+ (name "ruby-tty-screen")
+ (version "0.6.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "tty-screen" version))
+ (sha256
+ (base32 "19iq03prqjbm0nr7yn0181lph52d994jwbcsqss3lwpwkl20s6bv"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (synopsis
+ "Terminal screen size detection which works on Linux, OS X and Windows/Cygwin platforms and supports MRI, JRuby and Rubinius interpreters.")
+ (description
+ "Terminal screen size detection which works on Linux, OS X and Windows/Cygwin
+platforms and supports MRI, JRuby and Rubinius interpreters.")
+ (home-page "https://ttytoolkit.org")
+ (license license:expat)))
+
+(define-public ruby-rake
+ (package
+ (name "ruby-rake")
+ (version "12.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rake" version))
+ (sha256
+ (base32 "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg"))))
+ (build-system ruby-build-system)
+ (synopsis
+ "Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
+specified in standard Ruby syntax.
+Rake has the following features:
+ * Rakefiles (rake's version of Makefiles) are completely defined in standard Ruby syntax.
+ No XML files to edit. No quirky Makefile syntax to worry about (is that a tab or a space?)
+ * Users can specify tasks with prerequisites.
+ * Rake supports rule patterns to synthesize implicit tasks.
+ * Flexible FileLists that act like arrays but know about manipulating file names and paths.
+ * Supports parallel execution of tasks.
+")
+ (description
+ "Rake is a Make-like program implemented in Ruby. Tasks and dependencies are
+specified in standard Ruby syntax. Rake has the following features: * Rakefiles
+(rake's version of Makefiles) are completely defined in standard Ruby syntax.
+No XML files to edit. No quirky Makefile syntax to worry about (is that a tab
+or a space?) * Users can specify tasks with prerequisites. * Rake supports rule
+patterns to synthesize implicit tasks. * Flexible @code{FileLists} that act like
+arrays but know about manipulating file names and paths. * Supports parallel
+execution of tasks.")
+ (home-page "https://github.com/ruby/rake")
+ (license license:expat)))
+
+(define-public ruby-unicode-display-width-1.3.0
+ (package
+ (name "ruby-unicode-display-width-1.3.0")
+ (version "1.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "unicode-display_width" version))
+ (sha256
+ (base32 "12pi0gwqdnbx1lv5136v3vyr0img9wr0kxcn4wn54ipq4y41zxq8"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ (add-after 'unpack 'modify-index
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((index-file (string-append "lib/unicode/display_width/index.rb")))
+ (when (file-exists? index-file)
+ (substitute* (list index-file)
+ (("Gem\\.gunzip") "Gem::Util.gunzip"))))))
+
+ )))
+ (propagated-inputs (list ruby-unicode-emoji))
+ (synopsis
+ "[Unicode 16.0.0] Determines the monospace display width of a string using EastAsianWidth.txt, Unicode general category, Emoji specification, and other data.")
+ (description
+ "[Unicode 16.0.0] Determines the monospace display width of a string using
+@code{EastAsianWidth.txt}, Unicode general category, Emoji specification, and
+other data.")
+ (home-page "https://github.com/janlelis/unicode-display_width")
+ (license license:expat)))
+
+(define-public ruby-unicode-emoji
+ (package
+ (name "ruby-unicode-emoji")
+ (version "4.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "unicode-emoji" version))
+ (sha256
+ (base32 "0ajk6rngypm3chvl6r0vwv36q1931fjqaqhjjya81rakygvlwb1c"))))
+ (build-system ruby-build-system)
+ (arguments
+ '(
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check)
+ )))
+ (synopsis
+ "[Emoji 16.0] Provides Unicode Emoji data and regexes, incorporating the latest Unicode and Emoji standards. Includes a categorized list of recommended Emoji.")
+ (description
+ "[Emoji 16.0] Provides Unicode Emoji data and regexes, incorporating the latest
+Unicode and Emoji standards. Includes a categorized list of recommended Emoji.")
+ (home-page "https://github.com/janlelis/unicode-emoji")
+ (license license:expat)))
+
diff --git a/sherlock.scm b/sherlock.scm
index a6f787a..1482efc 100644
--- a/sherlock.scm
+++ b/sherlock.scm
@@ -40,6 +40,8 @@
python-pytest-cov
;python-pytest-network
python-readme-renderer
+ python-setuptools
+ python-wheel
python-twine))
(home-page "https://github.com/ross/requests-futures")
(synopsis "Asynchronous Python HTTP for Humans.")
@@ -73,7 +75,10 @@
(sha256
(base32 "10mf9p6r4wwk9m50jh5bpmvsnymkmn3wfqs30dx8vagx7zmd8i9p"))))
(build-system pyproject-build-system)
- (propagated-inputs (list python-pysocks python-requests python-stem))
+ (propagated-inputs (list python-pysocks python-requests python-stem
+ python-setuptools
+ python-wheel
+ ))
(home-page "http://github.com/erdiaker/torrequest")
(synopsis "A simple interface for HTTP(s) requests over Tor")
(description
@@ -116,3 +121,20 @@
(description
"Hunt down social media accounts by username across social networks.")
(license expat)))
+(define-public python-pyflakes
+ (package
+ (name "python-pyflakes")
+ (version "3.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "pyflakes" version))
+ (sha256
+ (base32 "0sspm7kgdrw9g4a1dn767d2idghnmiqi2y5gzbfabywpggc63zbd"))))
+ (build-system pyproject-build-system)
+ (native-inputs (list python-setuptools python-wheel))
+ (home-page "https://github.com/PyCQA/pyflakes")
+ (synopsis "passive checker of Python programs")
+ (description "passive checker of Python programs.")
+ (license expat)))
+
diff --git a/unlustig.scm b/unlustig.scm
index 9075864..ba83092 100644
--- a/unlustig.scm
+++ b/unlustig.scm
@@ -1,130 +1,199 @@
(define-module (unlustig)
- #:use-module ((guix licenses) :prefix license:)
- #:use-module (guix packages)
- #:use-module (guix build-system cargo)
- #:use-module (guix download)
- #:use-module (guix build utils)
- #:use-module (guix git-download)
- #:use-module (gnu packages video)
- #:use-module (gnu packages image)
- #:use-module (gnu packages commencement)
- #:use-module (gnu packages perl)
- #:use-module (gnu packages rust)
- #:use-module (gnu packages python)
- #:use-module (gnu packages xorg)
- #:use-module (gnu packages crates-io)
- #:use-module (gnu packages crates-graphics)
- #:use-module (gnu packages crates-gtk)
- #:use-module (gnu packages crates-web)
- #:use-module (gnu packages crates-windows)
- #:use-module (gnu packages crates-apple)
- #:use-module (gnu packages crates-crypto)
- )
+ #:use-module ((guix licenses) :prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix build-system cargo)
+ #:use-module (guix download)
+ #:use-module (guix build utils)
+ #:use-module (guix git-download)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages image)
+ #:use-module (gnu packages commencement)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages rust)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages xorg)
+ #:use-module (gnu packages crates-graphics)
+ #:use-module (gnu packages crates-gtk)
+ #:use-module (gnu packages crates-web)
+ #:use-module (gnu packages crates-windows)
+ #:use-module (gnu packages crates-apple)
+ #:use-module (gnu packages crates-crypto)
+ #:use-module (gnu packages crates-io)
+ )
-(define-public rust-human-bytes-0.3
+(define-public rust-user32-sys-0.1
(package
- (name "rust-human-bytes")
- (version "0.3.1")
+ (name "rust-user32-sys")
+ (version "0.1.3")
(source
(origin
(method url-fetch)
- (uri (crate-uri "human_bytes" version))
+ (uri (crate-uri "user32-sys" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "05w8yb616p26fnjb9iqdlgb2nzx6dlcsl1n3q522x57c77fd9848"))))
+ (base32 "02pqzgm7qfdvlb0zqry98h76zwvaq19idd99i0ch8b4m7fc1kdz6"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs (("rust-lexical" ,rust-lexical-6))))
- (home-page "https://sr.ht/~nkeor/human_bytes")
- (synopsis "Crate to convert bytes into human-readable values")
- (description "Crate to convert bytes into human-readable values")
- (license license:bsd-2)))
-
-(define-public rust-bltzxsd-discord-rich-presence
- (package
- (name "rust-bltzxsd-discord-rich-presence")
- (version "6d0bcf71f17a0371065d3efeb95ca61d9fe32c6a")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/bltzxsd/discord-rich-presence.git")
- (commit version)))
- (sha256
- (base32
- "138h4ifjdqx8zd6cdjr4xd9ak1phrnpzb4gw0blsfsnzbrz6lx68"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs
- (("rust-serde", rust-serde-1)
- ("rust-thiserror", rust-thiserror-1)
- ("rust-windows-named-pipe", rust-windows-named-pipe-0.1)
- ("rust-uuid", rust-uuid-0.8))
- #:phases
- (modify-phases %standard-phases
- (delete 'check))))
- (synopsis "library to connect and send data to Discord's IPC")
- (description "Simple, cross-platform crate to connect and send data to Discord's IPC")
- (home-page "https://github.com/bltzxsd/discord-rich-presence")
+ `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.2)
+ ("rust-winapi-build" ,rust-winapi-build-0.1))))
+ (home-page "https://github.com/retep998/winapi-rs")
+ (synopsis
+ "Contains function definitions for the Windows API library user32. See winapi for types and constants")
+ (description
+ "This package contains function definitions for the Windows API library user32.
+See winapi for types and constants.")
(license license:expat)))
-(define-public unlustig
+(define-public rust-xml-rs-0.2
(package
- (name "unlustig")
- (version "0.0.14")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/bltzxsd/unlustig")
- (commit (string-append "v" version))))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0fmsnvg3wp4lcrhw661lqhibvwsbljdq0k6ph9b7yl45kqxyv6p7"))
- (modules '((guix build utils)))
- (snippet '(delete-file-recursively "deps"))))
- (inputs
- (list
- ffmpeg
- gifsicle
- ))
- (native-inputs
- (list
- perl
- python
- rust-bltzxsd-discord-rich-presence
- rust-imageproc-0.23
- gcc-toolchain
- libx11
- ))
- (build-system cargo-build-system)
- (arguments
- `(
- #:cargo-inputs
- (("discord-rich-presence", rust-bltzxsd-discord-rich-presence)
- ("imageproc", rust-imageproc-0.23)
- ("rust-dirs", rust-dirs-4)
- ("human-bytes", rust-human-bytes-0.3)
- ("indicatif", rust-indicatif-0.16)
- ("rust-klask", rust-klask-1)
- ("rust-ureq", rust-ureq-2)
- ("rust-yansi", rust-yansi-0.5)
- ("rust-winres", rust-winres-0.1)
- ("rust-wayland-client", rust-wayland-client-0.28.0)
- ("rust-simple-logger", rust-simple-logger-2)
- )
-
- #:phases
- (modify-phases %standard-phases
- (add-before 'build 'use-local
- (lambda _
- (substitute* "Cargo.toml" ( ("imageproc.*") "imageproc = \"0.23.0\"\n"))
- (substitute* "Cargo.toml" ( ("discord-rich-presence.*") "discord-rich-presence = \"0.1.8\"\n"))
- )))))
- (synopsis "GIF Caption tool")
- (description
- "A CLI and GUI program for making IFunny gif captions on your computer.")
- (home-page "https://github.com/bltzxsd/unlustig")
+ (name "rust-xml-rs")
+ (version "0.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "xml-rs" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1hp9kf80y9qm3aiqg5psyshqfkcrjgifbcm2c2nc5qlzs80vc71w"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-test-flags '("--release" "--lib")
+ #:cargo-inputs
+ (("rust-bitflags" ,rust-bitflags-1))))
+ (home-page "https://github.com/netvl/xml-rs")
+ (synopsis "XML library in pure Rust")
+ (description "An XML library in pure Rust.")
(license license:expat)))
+
+(define-public rust-quickcheck-1
+ (package
+ (name "rust-quickcheck")
+ (version "1.0.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "quickcheck" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1mjhkfqwrb8mdyxdqr4zzbj1rm5dfx25n9zcc25lb6fxwiw673sq"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-env-logger" ,rust-env-logger-0.8)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-rand" ,rust-rand-0.8))))
+ (home-page "https://github.com/BurntSushi/quickcheck")
+ (synopsis "Automatic property based testing with shrinking")
+ (description
+ "This package provides Automatic property based testing with shrinking.")
+ (license (list license:unlicense license:expat))))
+
+
+(define-public rust-human-bytes-0.3
+ (package
+ (name "rust-human-bytes")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "human_bytes" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "05w8yb616p26fnjb9iqdlgb2nzx6dlcsl1n3q522x57c77fd9848"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-lexical" ,rust-lexical-6))))
+ (home-page "https://sr.ht/~nkeor/human_bytes")
+ (synopsis "Crate to convert bytes into human-readable values")
+ (description "Crate to convert bytes into human-readable values")
+ (license license:bsd-2)))
+
+(define-public rust-bltzxsd-discord-rich-presence
+ (package
+ (name "rust-bltzxsd-discord-rich-presence")
+ (version "6d0bcf71f17a0371065d3efeb95ca61d9fe32c6a")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bltzxsd/discord-rich-presence.git")
+ (commit version)))
+ (sha256
+ (base32
+ "138h4ifjdqx8zd6cdjr4xd9ak1phrnpzb4gw0blsfsnzbrz6lx68"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-serde", rust-serde-1)
+ ("rust-thiserror", rust-thiserror-1)
+ ("rust-windows-named-pipe", rust-windows-named-pipe-0.1)
+ ("rust-uuid", rust-uuid-0.8))
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'check))))
+ (synopsis "library to connect and send data to Discord's IPC")
+ (description "Simple, cross-platform crate to connect and send data to Discord's IPC")
+ (home-page "https://github.com/bltzxsd/discord-rich-presence")
+ (license license:expat)))
+
+(define-public unlustig
+ (package
+ (name "unlustig")
+ (version "0.0.14")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/bltzxsd/unlustig")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0fmsnvg3wp4lcrhw661lqhibvwsbljdq0k6ph9b7yl45kqxyv6p7"))
+ (modules '((guix build utils)))
+ (snippet '(delete-file-recursively "deps"))))
+ (inputs
+ (list
+ ffmpeg
+ gifsicle
+ ))
+ (native-inputs
+ (list
+ perl
+ python
+ rust-bltzxsd-discord-rich-presence
+ rust-imageproc-0.23
+ gcc-toolchain
+ libx11
+ ))
+ (build-system cargo-build-system)
+ (arguments
+ `(
+ #:cargo-inputs
+ (("discord-rich-presence", rust-bltzxsd-discord-rich-presence)
+ ("imageproc", rust-imageproc-0.23)
+ ("rust-dirs", rust-dirs-4)
+ ("human-bytes", rust-human-bytes-0.3)
+ ("indicatif", rust-indicatif-0.16)
+ ("rust-klask", rust-klask-1)
+ ("rust-ureq", rust-ureq-2)
+ ("rust-yansi", rust-yansi-0.5)
+ ("rust-winres", rust-winres-0.1)
+ ("rust-wayland-client", rust-wayland-client-0.28.0)
+ ("rust-simple-logger", rust-simple-logger-2)
+ )
+
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'use-local
+ (lambda _
+ (substitute* "Cargo.toml" ( ("imageproc.*") "imageproc = \"0.23.0\"\n"))
+ (substitute* "Cargo.toml" ( ("discord-rich-presence.*") "discord-rich-presence = \"0.1.8\"\n"))
+ )))))
+ (synopsis "GIF Caption tool")
+ (description
+ "A CLI and GUI program for making IFunny gif captions on your computer.")
+ (home-page "https://github.com/bltzxsd/unlustig")
+ (license license:expat)))
(define-public rust-klask-1
(package
(name "rust-klask")
@@ -149,75 +218,37 @@
("rust-uuid" ,rust-uuid-0.8))))
(home-page "https://github.com/MichalGniadek/klask")
(synopsis "Automatically create GUI for clap apps")
- (description "Automatically create GUI for clap apps")
+ (description
+ "This package provides Automatically create GUI for clap apps.")
(license license:expat)))
(define-public rust-wayland-client-0.28.0
(package
(name "rust-wayland-client")
- (version "0.28.0")
+ (version "0.28.6")
(source
(origin
(method url-fetch)
(uri (crate-uri "wayland-client" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0ijn2syc4pqk547nbql9ymgh71s4i8yr733isgxwnags2i0snisi"))))
+ (base32 "0m831sj4w5k0j9167f2dy3815k73g153j09271cz20p5a0ik7az3"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-1)
("rust-downcast-rs" ,rust-downcast-rs-1)
("rust-libc" ,rust-libc-0.2)
- ("rust-nix" ,rust-nix-0.18)
+ ("rust-nix" ,rust-nix-0.20)
("rust-scoped-tls" ,rust-scoped-tls-1)
("rust-wayland-commons" ,rust-wayland-commons-0.28)
("rust-wayland-scanner" ,rust-wayland-scanner-0.28)
("rust-wayland-sys" ,rust-wayland-sys-0.28))
- #:cargo-development-inputs (("rust-tempfile" ,rust-tempfile-3))))
+ #:cargo-development-inputs (("rust-tempfile" ,rust-tempfile-2))))
(home-page "https://github.com/smithay/wayland-rs")
(synopsis
- "Bindings to the standard C implementation of the wayland protocol, client side.")
+ "Bindings to the standard C implementation of the wayland protocol, client side")
(description
- "Bindings to the standard C implementation of the wayland protocol, client side.")
- (license license:expat)))
-
-(define-public rust-readwrite-0.1
- (package
- (name "rust-readwrite")
- (version "0.1.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "readwrite" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0wz4xlkzzwhki2lsw7vp1s4c86w9xkk42j897b93ds5vvac1p2bk"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-futures" ,rust-futures-0.1)
- ("rust-tokio-io" ,rust-tokio-io-0.1))))
- (home-page "https://github.com/vi/readwrite")
- (synopsis "Combine Read and Write into a single Read+Write object")
- (description "Combine Read and Write into a single Read+Write object")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-pipe-0.1
- (package
- (name "rust-pipe")
- (version "0.1.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "pipe" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "01ihfrbfr10w4lw9kqa3qi6jmn4i1nh8v9j45j7wgshi8r9zyig3"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-readwrite" ,rust-readwrite-0.1))))
- (home-page "https://github.com/arcnmx/pipe-rs")
- (synopsis "Synchronous Read/Write memory pipe")
- (description "Synchronous Read/Write memory pipe")
+ "This package provides Bindings to the standard C implementation of the wayland protocol, client side.")
(license license:expat)))
(define-public rust-windows-named-pipe-0.1
@@ -236,9 +267,9 @@
`(#:cargo-inputs (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
("rust-winapi" ,rust-winapi-0.2))))
(home-page "https://gitlab.com/dgriffen/windows-named-pipe")
- (synopsis "Windows named pipes with a unix-socket like interface
-")
- (description "Windows named pipes with a unix-socket like interface")
+ (synopsis "Windows named pipes with a unix-socket like interface")
+ (description
+ "This package provides Windows named pipes with a unix-socket like interface.")
(license license:bsd-2)))
(define-public rust-cansi-2
@@ -258,7 +289,8 @@
("rust-criterion" ,rust-criterion-0.3))))
(home-page "https://github.com/kurtlawrence/cansi")
(synopsis "Catergorise ANSI - ANSI escape code parser and categoriser")
- (description "Catergorise ANSI - ANSI escape code parser and categoriser")
+ (description
+ "This package provides Catergorise ANSI - ANSI escape code parser and categoriser.")
(license license:expat)))
(define-public rust-eframe-0.15
@@ -286,30 +318,7 @@
(synopsis
"egui framework - write GUI apps that compiles to web and/or natively")
(description
- "egui framework - write GUI apps that compiles to web and/or natively")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-linkify-0.7
- (package
- (name "rust-linkify")
- (version "0.7.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "linkify" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1y99xcmy6793m6x3z2qcyiw3dfrdvza3n659lmlv7kpzq7yjin04"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-memchr" ,rust-memchr-2))
- #:cargo-development-inputs (("rust-doc-comment" ,rust-doc-comment-0.3))))
- (home-page "https://github.com/robinst/linkify")
- (synopsis
- "Finds URLs and email addresses in plain text. Takes care to get the boundaries right with surrounding punctuation like parentheses.")
- (description
- "Finds URLs and email addresses in plain text. Takes care to get the boundaries
-right with surrounding punctuation like parentheses.")
+ "This package provides egui framework - write GUI apps that compiles to web and/or natively.")
(license (list license:expat license:asl2.0))))
(define-public rust-native-dialog-0.5
@@ -338,150 +347,12 @@ right with surrounding punctuation like parentheses.")
("rust-winapi" ,rust-winapi-0.3))))
(home-page "https://github.com/balthild/native-dialog-rs")
(synopsis
- "A library to display dialogs. Supports GNU/Linux, BSD Unix, macOS and Windows.")
+ "library to display dialogs. Supports GNU/Linux, BSD Unix, macOS and Windows.")
(description
"This package provides a library to display dialogs. Supports GNU/Linux, BSD
Unix, @code{macOS} and Windows.")
(license license:expat)))
-(define-public rust-wfd-0.1
- (package
- (name "rust-wfd")
- (version "0.1.7")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "wfd" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1a6p8651l0q9dvzipam91nwv56n2ijxfpqg318dbzrdacw5h84z7"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)
- ("rust-winapi" ,rust-winapi-0.3))))
- (home-page "https://www.github.com/ben-wallis/wfd")
- (synopsis
- "A simple to use abstraction over the Open and Save dialogs in the Windows API")
- (description
- "This package provides a simple to use abstraction over the Open and Save dialogs
-in the Windows API")
- (license license:expat)))
-
-(define-public rust-egui-0.15
- (package
- (name "rust-egui")
- (version "0.15.0")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "egui" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1rzswl25w2ryfrkijm7fp7nfzmxl8sx1rfqp9mpzrjs36dm4338w"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-ahash" ,rust-ahash-0.7)
- ("rust-epaint" ,rust-epaint-0.15)
- ("rust-nohash-hasher" ,rust-nohash-hasher-0.2)
- ("rust-ron" ,rust-ron-0.7)
- ("rust-serde" ,rust-serde-1))))
- (home-page "https://github.com/emilk/egui")
- (synopsis
- "An easy-to-use immediate mode GUI that runs on both web and native")
- (description
- "An easy-to-use immediate mode GUI that runs on both web and native")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-dylib-0.0.1
- (package
- (name "rust-dylib")
- (version "0.0.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "dylib" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1bj7bs0vm31yf9vvfagmdqa333vyhshbypmcqliizmv7qh7hgzyd"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
- (home-page "")
- (synopsis "Standalone version of former dylib module")
- (description "Standalone version of former dylib module")
- (license #f)))
-
-(define-public rust-x11-dl-2
- (package
- (name "rust-x11-dl")
- (version "2.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "x11-dl" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0l9a7gzgsm5l4y5755id97sdy6bc05xyns0p5dfhpmv0r93pp2rk"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-dylib" ,rust-dylib-0.0.1)
- ("rust-libc" ,rust-libc-0.2))))
- (home-page "https://github.com/AltF02/x11-rs.git")
- (synopsis "X11 library bindings for Rust")
- (description "X11 library bindings for Rust")
- (license license:cc0)))
-
-(define-public rust-wayland-window-0.2
- (package
- (name "rust-wayland-window")
- (version "0.2.3")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "wayland-window" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0k48mmkmpkj3jaj60j85raigh0ngk1yzp2fq48ac5jb3m39nk6rh"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-byteorder" ,rust-byteorder-0.5)
- ("rust-tempfile" ,rust-tempfile-2)
- ("rust-wayland-client" ,rust-wayland-client-0.5))
- #:cargo-development-inputs (("rust-wayland-client" ,rust-wayland-client-0.5))))
- (home-page "https://github.com/Smithay/wayland-window")
- (synopsis
- "A minimalistic window-decorations library built on top of wayland-client.")
- (description
- "This package provides a minimalistic window-decorations library built on top of
-wayland-client.")
- (license license:expat)))
-
-(define-public rust-wayland-kbd-0.3
- (package
- (name "rust-wayland-kbd")
- (version "0.3.6")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "wayland-kbd" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0l5hirs1r1s1mwc9japw9xb1gsms893x5v7zprvhga8x9kl11g3k"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-0.7)
- ("rust-dlib" ,rust-dlib-0.3)
- ("rust-lazy-static" ,rust-lazy-static-0.1)
- ("rust-memmap" ,rust-memmap-0.2)
- ("rust-wayland-client" ,rust-wayland-client-0.5))
- #:cargo-development-inputs (("rust-wayland-client" ,rust-wayland-client-0.5))))
- (home-page "https://github.com/smithay/wayland-kbd")
- (synopsis
- "Keyboard mapping utility for wayland-client using libxkbcommon.")
- (description
- "Keyboard mapping utility for wayland-client using libxkbcommon.")
- (license license:expat)))
-
(define-public rust-tempfile-2
(package
(name "rust-tempfile")
@@ -501,720 +372,57 @@ wayland-client.")
("rust-redox-syscall" ,rust-redox-syscall-0.1)
("rust-winapi" ,rust-winapi-0.2))))
(home-page "https://stebalien.com/projects/tempfile-rs/")
- (synopsis "A library for managing temporary files and directories.")
+ (synopsis "library for managing temporary files and directories.")
(description
"This package provides a library for managing temporary files and directories.")
(license (list license:expat license:asl2.0))))
-(define-public rust-wayland-sys-0.5
- (package
- (name "rust-wayland-sys")
- (version "0.5.11")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "wayland-sys" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0fl01v8wghplps6ba23zryz89dgidfvz3sl2bwhl8rg5bpzgfcwn"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-dlib" ,rust-dlib-0.3)
- ("rust-lazy-static" ,rust-lazy-static-0.1)
- ("rust-libc" ,rust-libc-0.2))))
- (home-page "https://github.com/smithay/wayland-rs")
- (synopsis
- "FFI bindings to the various libwayland-*.so libraries. You should only need this crate if you are working on custom wayland protocol extensions. Look at the crate wayland-client for usable bindings.")
- (description
- "FFI bindings to the various libwayland-*.so libraries. You should only need
-this crate if you are working on custom wayland protocol extensions. Look at
-the crate wayland-client for usable bindings.")
- (license license:expat)))
-
-(define-public rust-xml-rs-0.3
- (package
- (name "rust-xml-rs")
- (version "0.3.6")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "xml-rs" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0qmm2nss16b0f46fp30s2ka8k50a5i03jlp36672qf38magc7iky"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-0.7))))
- (home-page "https://lib.rs/crates/xml-rs")
- (synopsis "An XML library in pure Rust")
- (description "An XML library in pure Rust")
- (license license:expat)))
-
-(define-public rust-wayland-scanner-0.5
- (package
- (name "rust-wayland-scanner")
- (version "0.5.11")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "wayland-scanner" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0rjg6qs9a9j9895djjp9f2d20kizh0fm2947msmwpbvb1lvnj62s"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-xml-rs" ,rust-xml-rs-0.3))))
- (home-page "https://github.com/smithay/wayland-rs")
- (synopsis
- "Wayland Scanner for generating rust APIs from XML wayland protocol files.")
- (description
- "Wayland Scanner for generating rust APIs from XML wayland protocol files.")
- (license license:expat)))
-
-(define-public rust-target-build-utils-0.3
- (package
- (name "rust-target-build-utils")
- (version "0.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "target_build_utils" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0p7713x4bpbwi11l196z1mi8ym8qj1cdnab1mm2ffpm2wi516g81"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-phf" ,rust-phf-0.7)
- ("rust-phf-codegen" ,rust-phf-codegen-0.7)
- ("rust-serde-json" ,rust-serde-json-0.9))))
- (home-page "https://github.com/nagisa/target_build_utils.rs")
- (synopsis
- "DEPRECATED: Use Cargo environment variables `CARGO_CFG_TARGET_*`")
- (description
- "DEPRECATED: Use Cargo environment variables `CARGO_CFG_TARGET_*`")
- (license (list license:isc license:asl2.0))))
-
-(define-public rust-libloading-0.3
- (package
- (name "rust-libloading")
- (version "0.3.4")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "libloading" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0risz19rllhdc0d7nkpwkf4pcbjjgg1iim0kkmzb6kkp874hl0ha"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
- ("rust-lazy-static" ,rust-lazy-static-0.2)
- ("rust-target-build-utils" ,rust-target-build-utils-0.3)
- ("rust-winapi" ,rust-winapi-0.2))))
- (home-page "https://github.com/nagisa/rust_libloading/")
- (synopsis
- "Bindings around the platform's dynamic library loading primitives with greatly improved memory safety.")
- (description
- "Bindings around the platform's dynamic library loading primitives with greatly
-improved memory safety.")
- (license license:isc)))
-
-(define-public rust-dlib-0.3
- (package
- (name "rust-dlib")
- (version "0.3.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "dlib" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1v36322ilmdd1w3kh2xhm58ma9mxq9i4xdcwy84lav63w56cx2ql"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-libloading" ,rust-libloading-0.3))))
- (home-page "https://github.com/elinorbgr/dlib")
- (synopsis
- "Helper macros for handling manually loading optional system libraries.")
- (description
- "Helper macros for handling manually loading optional system libraries.")
- (license license:expat)))
-
-(define-public rust-crossbeam-0.2
- (package
- (name "rust-crossbeam")
- (version "0.2.12")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "crossbeam" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1gmrayc93lygb8v62bj0c5zwyflvj5bli7ari650k259nlyncrmx"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-development-inputs (("rust-rand" ,rust-rand-0.3))))
- (home-page "https://github.com/crossbeam-rs/crossbeam")
- (synopsis "Tools for concurrent programming")
- (description "This package provides tools for concurrent programming")
- (license (list license:asl2.0 license:expat))))
-
-(define-public rust-wayland-client-0.5
- (package
- (name "rust-wayland-client")
- (version "0.5.12")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "wayland-client" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "17jmi893jr34s8w175rnljwqi7vxc8d0wls0inhc0p3v2m60klyf"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-0.7)
- ("rust-crossbeam" ,rust-crossbeam-0.2)
- ("rust-dlib" ,rust-dlib-0.3)
- ("rust-lazy-static" ,rust-lazy-static-0.1)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-wayland-scanner" ,rust-wayland-scanner-0.5)
- ("rust-wayland-sys" ,rust-wayland-sys-0.5))
- #:cargo-development-inputs (("rust-byteorder" ,rust-byteorder-0.5)
- ("rust-tempfile" ,rust-tempfile-2))))
- (home-page "https://github.com/smithay/wayland-rs")
- (synopsis
- "Bindings to the standard C implementation of the wayland protocol, client side.")
- (description
- "Bindings to the standard C implementation of the wayland protocol, client side.")
- (license license:expat)))
-
-(define-public rust-user32-sys-0.1
- (package
- (name "rust-user32-sys")
- (version "0.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "user32-sys" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "02pqzgm7qfdvlb0zqry98h76zwvaq19idd99i0ch8b4m7fc1kdz6"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.2)
- ("rust-winapi-build" ,rust-winapi-build-0.1))))
- (home-page "https://github.com/retep998/winapi-rs")
- (synopsis
- "Contains function definitions for the Windows API library user32. See winapi for types and constants.")
- (description
- "This package contains function definitions for the Windows API library user32.
-See winapi for types and constants.")
- (license license:expat)))
-
-(define-public rust-shell32-sys-0.1
- (package
- (name "rust-shell32-sys")
- (version "0.1.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "shell32-sys" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0b0jjnv8rr4flllvpx9lkfvvxdl3hac53cd2klf14mqz2134pq4y"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.2)
- ("rust-winapi-build" ,rust-winapi-build-0.1))))
- (home-page "https://github.com/retep998/winapi-rs")
- (synopsis
- "Contains function definitions for the Windows API library shell32. See winapi for types and constants.")
- (description
- "This package contains function definitions for the Windows API library shell32.
-See winapi for types and constants.")
- (license license:expat)))
-
-(define-public rust-osmesa-sys-0.0.5
- (package
- (name "rust-osmesa-sys")
- (version "0.0.5")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "osmesa-sys" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "179nqpaxaz1x48gs365v5cmwm76849n2rpw0q92ms9gsf26jsp72"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)
- ("rust-shared-library" ,rust-shared-library-0.1))))
- (home-page "https://github.com/Daggerbot/osmesa-rs.git")
- (synopsis "OSMesa library bindings for Rust")
- (description "OSMesa library bindings for Rust")
- (license license:cc0)))
-
-(define-public rust-gdi32-sys-0.1
- (package
- (name "rust-gdi32-sys")
- (version "0.1.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "gdi32-sys" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "04bcwaia0q46k4rajwpivdvlfyc2gw5vnvkbz247hlh724nbjglf"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.2)
- ("rust-winapi-build" ,rust-winapi-build-0.1))))
- (home-page "https://github.com/retep998/winapi-rs")
- (synopsis
- "Contains function definitions for the Windows API library gdi32. See winapi for types and constants.")
- (description
- "This package contains function definitions for the Windows API library gdi32.
-See winapi for types and constants.")
- (license license:expat)))
-
-(define-public rust-dwmapi-sys-0.1
- (package
- (name "rust-dwmapi-sys")
- (version "0.1.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "dwmapi-sys" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0xiyc8vibsda0kbamr9zkjvkdzdxcq8bs1g5mq4yc4mbmr168jxl"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.2)
- ("rust-winapi-build" ,rust-winapi-build-0.1))))
- (home-page "https://github.com/retep998/winapi-rs")
- (synopsis
- "Contains function definitions for the Windows API library dwmapi. See winapi for types and constants.")
- (description
- "This package contains function definitions for the Windows API library dwmapi.
-See winapi for types and constants.")
- (license license:expat)))
-
-(define-public rust-objc-exception-0.0.2
- (package
- (name "rust-objc-exception")
- (version "0.0.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "objc_exception" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "02a22wqcx0hkbnsin7fzgpvvhw8ynv0sks2l4ra1wmk556k8axar"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-gcc" ,rust-gcc-0.3)
- ("rust-libc" ,rust-libc-0.2))))
- (home-page "http://github.com/SSheldon/rust-objc-exception")
- (synopsis
- "Rust interface for Objective-C's throw and try/catch statements.")
- (description
- "Rust interface for Objective-C's throw and try/catch statements.")
- (license license:expat)))
-
-(define-public rust-objc-0.1
+(define-public rust-wfd-0.1
(package
- (name "rust-objc")
- (version "0.1.8")
+ (name "rust-wfd")
+ (version "0.1.7")
(source
(origin
(method url-fetch)
- (uri (crate-uri "objc" version))
+ (uri (crate-uri "wfd" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0mj00d6fzdn518ryq4r1r32njgvgg1yri8n7by2rh4q3r1zgscsr"))))
+ (base32 "1a6p8651l0q9dvzipam91nwv56n2ijxfpqg318dbzrdacw5h84z7"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)
- ("rust-malloc-buf" ,rust-malloc-buf-0.0)
- ("rust-objc-exception" ,rust-objc-exception-0.0.2))))
- (home-page "http://github.com/SSheldon/rust-objc")
- (synopsis "Objective-C Runtime bindings and wrapper for Rust.")
- (description "Objective-C Runtime bindings and wrapper for Rust.")
- (license license:expat)))
-
-(define-public rust-serde-0.7
- (package
- (name "rust-serde")
- (version "0.7.15")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "serde" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "14haziy946c4m8h5bgg3c98558rbjim3jnl1c5zjdi4fm8r0f3hv"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-clippy" ,rust-clippy-0.0))))
- (home-page "https://serde.rs")
- (synopsis "A generic serialization/deserialization framework")
- (description
- "This package provides a generic serialization/deserialization framework")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-core-graphics-0.3
- (package
- (name "rust-core-graphics")
- (version "0.3.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "core-graphics" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "08y7si6hiwm25g4a9vdcqzhwpgkqaxabwcfjlyxfsam25c1ccmhc"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-core-foundation" ,rust-core-foundation-0.2)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-serde" ,rust-serde-0.7))))
- (home-page "https://github.com/servo/core-foundation-rs")
- (synopsis "Bindings to Core Graphics for macOS")
- (description "Bindings to Core Graphics for @code{macOS}")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-cocoa-0.2
- (package
- (name "rust-cocoa")
- (version "0.2.5")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "cocoa" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "10lzgy15wdk2vq5bg6xa8iqsbh8b44159p839z9mimmgkrxi6bbn"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-0.3)
- ("rust-core-graphics" ,rust-core-graphics-0.3)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-objc" ,rust-objc-0.1))))
- (home-page "https://github.com/servo/core-foundation-rs")
- (synopsis "Bindings to Cocoa for macOS")
- (description "Bindings to Cocoa for @code{macOS}")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-xml-rs-0.6
- (package
- (name "rust-xml-rs")
- (version "0.6.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "xml-rs" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "08a6lydyf3cmknicf0hnqdwyz5i4hfq20rcpswhig5bbw495x571"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-0.9))))
- (home-page "https://lib.rs/crates/xml-rs")
- (synopsis "An XML library in pure Rust")
- (description "An XML library in pure Rust")
- (license license:expat)))
-
-(define-public rust-gl-generator-0.5
- (package
- (name "rust-gl-generator")
- (version "0.5.5")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "gl_generator" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0756xj1inkh0j5mcigsyyl5amhg954hkd13av4d9wbnmlcmvzb77"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-khronos-api" ,rust-khronos-api-1)
- ("rust-log" ,rust-log-0.3)
- ("rust-xml-rs" ,rust-xml-rs-0.6))))
- (home-page "https://github.com/brendanzab/gl-rs/")
- (synopsis
- "Code generators for creating bindings to the Khronos OpenGL APIs.")
- (description
- "Code generators for creating bindings to the Khronos @code{OpenGL} APIs.")
- (license license:asl2.0)))
-
-(define-public rust-gleam-0.2
- (package
- (name "rust-gleam")
- (version "0.2.32")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "gleam" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "009d8rgxygh7sjpzl5kk7jklkqzvgs76gb5bqn0a0a6mg3jy144m"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-gl-generator" ,rust-gl-generator-0.5)
- ("rust-pkg-config" ,rust-pkg-config-0.3))))
- (home-page "https://github.com/servo/gleam")
- (synopsis "Generated OpenGL bindings and wrapper for Servo.")
- (description "Generated @code{OpenGL} bindings and wrapper for Servo.")
- (license (list license:asl2.0 license:expat))))
-
-(define-public rust-cgl-0.1
- (package
- (name "rust-cgl")
- (version "0.1.5")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "cgl" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "044cycnn760gki4jnvsagwr3wds9pdmnpgsx8ysrqwsslv67ipcb"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-gleam" ,rust-gleam-0.2)
- ("rust-libc" ,rust-libc-0.2))))
- (home-page "https://github.com/servo/cgl-rs")
- (synopsis "Rust bindings for CGL on Mac")
- (description "Rust bindings for CGL on Mac")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-android-glue-0.1
- (package
- (name "rust-android-glue")
- (version "0.1.3")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "android_glue" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0y07v7vvirxlxbbkajglfdx4hfrm2vbzqbpwzkh5ib3vid7j25zp"))))
- (build-system cargo-build-system)
- (home-page "https://github.com/tomaka/android-rs-glue")
- (synopsis "Glue for the Android JNI")
- (description "Glue for the Android JNI")
- (license license:expat)))
-
-(define-public rust-glutin-0.4
- (package
- (name "rust-glutin")
- (version "0.4.9")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "glutin" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "10d259jqbsalalnbag5mkqpqswyl424k666sqjzxbjlj2s5in7x7"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-android-glue" ,rust-android-glue-0.1)
- ("rust-cgl" ,rust-cgl-0.1)
- ("rust-cocoa" ,rust-cocoa-0.2)
- ("rust-core-foundation" ,rust-core-foundation-0.2)
- ("rust-core-graphics" ,rust-core-graphics-0.17)
- ("rust-dwmapi-sys" ,rust-dwmapi-sys-0.1)
- ("rust-gdi32-sys" ,rust-gdi32-sys-0.1)
- ("rust-gl-generator" ,rust-gl-generator-0.4)
- ("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
- ("rust-khronos-api" ,rust-khronos-api-1)
- ("rust-lazy-static" ,rust-lazy-static-0.1)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-objc" ,rust-objc-0.1)
- ("rust-osmesa-sys" ,rust-osmesa-sys-0.0.5)
- ("rust-shared-library" ,rust-shared-library-0.1)
- ("rust-shell32-sys" ,rust-shell32-sys-0.1)
- ("rust-user32-sys" ,rust-user32-sys-0.1)
- ("rust-wayland-client" ,rust-wayland-client-0.5)
- ("rust-wayland-kbd" ,rust-wayland-kbd-0.3)
- ("rust-wayland-window" ,rust-wayland-window-0.2)
- ("rust-winapi" ,rust-winapi-0.2)
- ("rust-x11-dl" ,rust-x11-dl-2))))
- (home-page "https://github.com/rust-windowing/glutin")
- (synopsis "Cross-platform OpenGL context provider.")
- (description "Cross-platform @code{OpenGL} context provider.")
- (license license:asl2.0)))
-
-(define-public rust-bitflags-0.3
- (package
- (name "rust-bitflags")
- (version "0.3.3")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "bitflags" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "171qfyjn5z86z6i5jynpwmwf03m8n6hql5di3n5l6kiw216nz1ij"))))
- (build-system cargo-build-system)
- (home-page "https://github.com/bitflags/bitflags")
- (synopsis "A macro to generate structures which behave like bitflags.
-")
- (description
- "This package provides a macro to generate structures which behave like bitflags.")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-xml-rs-0.2
- (package
- (name "rust-xml-rs")
- (version "0.2.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "xml-rs" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1gwy8hny2643j2yxpkcs3n4gxbfhxk72wgz06cfxf0ps6kwk8z0d"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-0.3))))
- (home-page "https://lib.rs/crates/xml-rs")
- (synopsis "An XML library in pure Rust")
- (description "An XML library in pure Rust")
- (license license:expat)))
-
-(define-public rust-khronos-api-1
- (package
- (name "rust-khronos-api")
- (version "1.0.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "khronos_api" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "19wib9dybhlgxpwp77sl5bbck4qas2vfldx43j7syrfn64m8x86m"))))
- (build-system cargo-build-system)
- (home-page "https://github.com/brendanzab/gl-rs/")
- (synopsis
- "The Khronos XML API Registry, exposed as byte string constants.")
- (description
- "The Khronos XML API Registry, exposed as byte string constants.")
- (license license:asl2.0)))
-
-(define-public rust-gl-generator-0.4
- (package
- (name "rust-gl-generator")
- (version "0.4.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "gl_generator" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "048hnacz40sabbq50nccjf5qdiq9hw1wq0sbbmkkzpksdhnmp41p"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-khronos-api" ,rust-khronos-api-1)
- ("rust-log" ,rust-log-0.3)
- ("rust-xml-rs" ,rust-xml-rs-0.2))))
- (home-page "https://github.com/brendanzab/gl-rs/")
+ ("rust-winapi" ,rust-winapi-0.3))))
+ (home-page "https://www.github.com/ben-wallis/wfd")
(synopsis
- "Code generators for creating bindings to the Khronos OpenGL APIs.")
+ "simple to use abstraction over the Open and Save dialogs in the Windows API")
(description
- "Code generators for creating bindings to the Khronos @code{OpenGL} APIs.")
- (license license:asl2.0)))
-
-(define-public rust-gl-0.5
- (package
- (name "rust-gl")
- (version "0.5.2")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "gl" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1a1xjar29zpw0lksqcskcf1x04zzs230x5qwchiigkpfriwykss9"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-gl-generator" ,rust-gl-generator-0.4)
- ("rust-khronos-api" ,rust-khronos-api-1))
- #:cargo-development-inputs (("rust-glutin" ,rust-glutin-0.4))))
- (home-page "https://github.com/brendanzab/gl-rs/")
- (synopsis "OpenGL bindings")
- (description "@code{OpenGL} bindings")
- (license license:asl2.0)))
-
-(define-public rust-xcb-0.10
- (package
- (name "rust-xcb")
- (version "0.10.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "xcb" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "171acbbbsr05ilw7ih0cc79qysci5pv91zyrdlfcs87pdncjn7kp"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)
- ("rust-libc" ,rust-libc-0.2)
- ("rust-log" ,rust-log-0.4)
- ("rust-quick-xml" ,rust-quick-xml-0.22)
- ("rust-x11" ,rust-x11-2))
- #:cargo-development-inputs (("rust-gl" ,rust-gl-0.5)
- ("rust-x11" ,rust-x11-2))))
- (home-page "https://github.com/rust-x-bindings/rust-xcb")
- (synopsis "Rust safe bindings for XCB")
- (description "Rust safe bindings for XCB")
- (license license:expat)))
-
-(define-public rust-x11-clipboard-0.5
- (package
- (name "rust-x11-clipboard")
- (version "0.5.3")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "x11-clipboard" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0g35qcmy7ayp3clbqnvvqjc7h02y9q2z294868c6mj0ap2vnhc27"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-xcb" ,rust-xcb-0.10))))
- (home-page "https://github.com/quininer/x11-clipboard")
- (synopsis "x11 clipboard support for Rust.")
- (description "x11 clipboard support for Rust.")
+ "This package provides a simple to use abstraction over the Open and Save dialogs
+in the Windows API.")
(license license:expat)))
-(define-public rust-copypasta-0.7
+(define-public rust-egui-0.15
(package
- (name "rust-copypasta")
- (version "0.7.1")
+ (name "rust-egui")
+ (version "0.15.0")
(source
(origin
(method url-fetch)
- (uri (crate-uri "copypasta" version))
+ (uri (crate-uri "egui" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "02zz6yndszmzr5yjhn11g1hsj0232jbzl8gch6mxksw3xngxf8s4"))))
+ (base32 "1rzswl25w2ryfrkijm7fp7nfzmxl8sx1rfqp9mpzrjs36dm4338w"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs (("rust-clipboard-win" ,rust-clipboard-win-3)
- ("rust-objc" ,rust-objc-0.2)
- ("rust-objc-foundation" ,rust-objc-foundation-0.1)
- ("rust-objc-id" ,rust-objc-id-0.1)
- ("rust-smithay-clipboard" ,rust-smithay-clipboard-0.6)
- ("rust-x11-clipboard" ,rust-x11-clipboard-0.5))))
- (home-page "https://github.com/alacritty/copypasta")
+ `(#:cargo-inputs (("rust-ahash" ,rust-ahash-0.7)
+ ("rust-epaint" ,rust-epaint-0.15)
+ ("rust-nohash-hasher" ,rust-nohash-hasher-0.2)
+ ("rust-ron" ,rust-ron-0.7)
+ ("rust-serde" ,rust-serde-1))))
+ (home-page "https://github.com/emilk/egui")
(synopsis
- "copypasta is a cross-platform library for getting and setting the contents of the OS-level clipboard.")
+ "An easy-to-use immediate mode GUI that runs on both web and native")
(description
- "copypasta is a cross-platform library for getting and setting the contents of
-the OS-level clipboard.")
+ "This package provides An easy-to-use immediate mode GUI that runs on both web and native.")
(license (list license:expat license:asl2.0))))
(define-public rust-egui-winit-0.15
@@ -1239,7 +447,7 @@ the OS-level clipboard.")
("rust-winit" ,rust-winit-0.25))))
(home-page "https://github.com/emilk/egui/tree/master/crates/egui-winit")
(synopsis "Bindings for using egui with winit")
- (description "Bindings for using egui with winit")
+ (description "This package provides Bindings for using egui with winit.")
(license (list license:expat license:asl2.0))))
(define-public rust-egui-glium-0.15
@@ -1262,7 +470,8 @@ the OS-level clipboard.")
#:cargo-development-inputs (("rust-image" ,rust-image-0.23))))
(home-page "https://github.com/fayalalebrun/egui_glium")
(synopsis "Bindings for using egui natively using the glium library")
- (description "Bindings for using egui natively using the glium library")
+ (description
+ "This package provides Bindings for using egui natively using the glium library.")
(license (list license:expat license:asl2.0))))
(define-public rust-egui-glow-0.15
@@ -1287,7 +496,8 @@ the OS-level clipboard.")
#:cargo-development-inputs (("rust-image" ,rust-image-0.23))))
(home-page "https://github.com/emilk/egui/tree/master/crates/egui_glow")
(synopsis "Bindings for using egui natively using the glow library")
- (description "Bindings for using egui natively using the glow library")
+ (description
+ "This package provides Bindings for using egui natively using the glow library.")
(license (list license:expat license:asl2.0))))
(define-public rust-egui-web-0.15
@@ -1314,7 +524,8 @@ the OS-level clipboard.")
("rust-web-sys" ,rust-web-sys-0.3))))
(home-page "https://github.com/emilk/egui/tree/master/egui_web")
(synopsis "Bindings for compiling egui code to WASM for a web page")
- (description "Bindings for compiling egui code to WASM for a web page")
+ (description
+ "This package provides Bindings for compiling egui code to WASM for a web page.")
(license (list license:expat license:asl2.0))))
(define-public rust-epi-0.15
@@ -1336,7 +547,8 @@ the OS-level clipboard.")
("rust-serde" ,rust-serde-1))))
(home-page "https://github.com/emilk/egui/tree/master/epi")
(synopsis "Backend-agnostic interface for writing apps using egui")
- (description "Backend-agnostic interface for writing apps using egui")
+ (description
+ "This package provides Backend-agnostic interface for writing apps using egui.")
(license (list license:expat license:asl2.0))))
(define-public rust-rfd-0.5
@@ -1370,7 +582,7 @@ the OS-level clipboard.")
#:cargo-development-inputs (("rust-futures" ,rust-futures-0.3))))
(home-page "https://github.com/PolyMeilex/rfd")
(synopsis "Rusty File Dialog")
- (description "Rusty File Dialog")
+ (description "This package provides Rusty File Dialog.")
(license license:expat)))
(define-public rust-tts-0.17
@@ -1404,7 +616,8 @@ the OS-level clipboard.")
#:cargo-development-inputs (("rust-env-logger" ,rust-env-logger-0.8))))
(home-page "https://github.com/ndarilek/tts-rs")
(synopsis "High-level Text-To-Speech (TTS) interface")
- (description "High-level Text-To-Speech (TTS) interface")
+ (description
+ "This package provides High-level Text-To-Speech (TTS) interface.")
(license license:expat)))
(define-public rust-glow-0.11
@@ -1426,9 +639,9 @@ the OS-level clipboard.")
("rust-web-sys" ,rust-web-sys-0.3))))
(home-page "https://github.com/grovesNL/glow.git")
(synopsis
- "GL on Whatever: a set of bindings to run GL (Open GL, OpenGL ES, and WebGL) anywhere, and avoid target-specific code.")
+ "GL on Whatever: a set of bindings to run GL (Open GL, OpenGL ES, and WebGL) anywhere, and avoid target-specific code")
(description
- "GL on Whatever: a set of bindings to run GL (Open GL, @code{OpenGL} ES, and
+ "This package provides GL on Whatever: a set of bindings to run GL (Open GL, @code{OpenGL} ES, and
@code{WebGL}) anywhere, and avoid target-specific code.")
(license (list license:expat license:asl2.0))))
@@ -1465,54 +678,11 @@ the OS-level clipboard.")
("rust-winapi" ,rust-winapi-0.3)
("rust-winit" ,rust-winit-0.25))))
(home-page "https://github.com/rust-windowing/glutin")
- (synopsis "Cross-platform OpenGL context provider.")
- (description "Cross-platform @code{OpenGL} context provider.")
+ (synopsis "Cross-platform OpenGL context provider")
+ (description
+ "This package provides Cross-platform @code{OpenGL} context provider.")
(license license:asl2.0)))
-(define-public rust-ouroboros-macro-0.10
- (package
- (name "rust-ouroboros-macro")
- (version "0.10.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "ouroboros_macro" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "0s6aic49lyclhas6bh1f84qfy31m333mcvnmn4v02v5rdrx8aqzl"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-inflector" ,rust-inflector-0.11)
- ("rust-proc-macro-error" ,rust-proc-macro-error-1)
- ("rust-proc-macro2" ,rust-proc-macro2-1)
- ("rust-quote" ,rust-quote-1)
- ("rust-syn" ,rust-syn-1))))
- (home-page "https://github.com/someguynamedjosh/ouroboros")
- (synopsis "Proc macro for ouroboros crate.")
- (description "Proc macro for ouroboros crate.")
- (license (list license:expat license:asl2.0))))
-
-(define-public rust-ouroboros-0.10
- (package
- (name "rust-ouroboros")
- (version "0.10.1")
- (source
- (origin
- (method url-fetch)
- (uri (crate-uri "ouroboros" version))
- (file-name (string-append name "-" version ".tar.gz"))
- (sha256
- (base32 "1phbp9wjp36bvkwlyvr2zznaack6xcvg0z1869r3i33iy5j6s8w4"))))
- (build-system cargo-build-system)
- (arguments
- `(#:cargo-inputs (("rust-aliasable" ,rust-aliasable-0.1)
- ("rust-ouroboros-macro" ,rust-ouroboros-macro-0.10)
- ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
- (home-page "https://github.com/someguynamedjosh/ouroboros")
- (synopsis "Easy, safe self-referential struct generation.")
- (description "Easy, safe self-referential struct generation.")
- (license (list license:expat license:asl2.0))))
-
(define-public rust-glium-0.30
(package
(name "rust-glium")
@@ -1554,10 +724,9 @@ Its objectives:
- Provide an API that enforces good pratices such as RAII or stateless function calls.
- Be compatible with all OpenGL versions that support shaders, providing unified API when things diverge.
- Avoid all OpenGL errors beforehand.
- - Produce optimized OpenGL function calls, and allow the user to easily use modern OpenGL techniques.
-")
+ - Produce optimized OpenGL function calls, and allow the user to easily use modern OpenGL techniques.")
(description
- "Elegant and safe @code{OpenGL} wrapper. Glium is an intermediate layer between
+ "This package provides Elegant and safe @code{OpenGL} wrapper. Glium is an intermediate layer between
@code{OpenGL} and your application. You still need to manually handle the
graphics pipeline, but without having to use @code{OpenGL's} old and error-prone
API. Its objectives: - Be safe to use. Many aspects of @code{OpenGL} that can
@@ -1569,6 +738,33 @@ Produce optimized @code{OpenGL} function calls, and allow the user to easily use
modern @code{OpenGL} techniques.")
(license license:asl2.0)))
+(define-public rust-copypasta-0.7
+ (package
+ (name "rust-copypasta")
+ (version "0.7.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "copypasta" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "02zz6yndszmzr5yjhn11g1hsj0232jbzl8gch6mxksw3xngxf8s4"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-clipboard-win" ,rust-clipboard-win-3)
+ ("rust-objc" ,rust-objc-0.2)
+ ("rust-objc-foundation" ,rust-objc-foundation-0.1)
+ ("rust-objc-id" ,rust-objc-id-0.1)
+ ("rust-smithay-clipboard" ,rust-smithay-clipboard-0.6)
+ ("rust-x11-clipboard" ,rust-x11-clipboard-0.5))))
+ (home-page "https://github.com/alacritty/copypasta")
+ (synopsis
+ "copypasta is a cross-platform library for getting and setting the contents of the OS-level clipboard")
+ (description
+ "This package provides copypasta is a cross-platform library for getting and setting the contents of
+the OS-level clipboard.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-winit-0.25
(package
(name "rust-winit")
@@ -1605,7 +801,7 @@ modern @code{OpenGL} techniques.")
("rust-raw-window-handle" ,rust-raw-window-handle-0.3)
("rust-scopeguard" ,rust-scopeguard-1)
("rust-serde" ,rust-serde-1)
- ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.12.3)
+ ("rust-smithay-client-toolkit" ,rust-smithay-client-toolkit-0.12)
("rust-stdweb" ,rust-stdweb-0.4)
("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
("rust-wayland-client" ,rust-wayland-client-0.28)
@@ -1616,8 +812,9 @@ modern @code{OpenGL} techniques.")
("rust-image" ,rust-image-0.23)
("rust-simple-logger" ,rust-simple-logger-1))))
(home-page "https://github.com/rust-windowing/winit")
- (synopsis "Cross-platform window creation library.")
- (description "Cross-platform window creation library.")
+ (synopsis "Cross-platform window creation library")
+ (description
+ "This package provides Cross-platform window creation library.")
(license license:asl2.0)))
(define-public rust-epaint-0.15
@@ -1644,7 +841,8 @@ modern @code{OpenGL} techniques.")
("rust-serde" ,rust-serde-1))))
(home-page "https://github.com/emilk/egui/tree/master/crates/epaint")
(synopsis "Minimal 2D graphics library for GUI work")
- (description "Minimal 2D graphics library for GUI work")
+ (description
+ "This package provides Minimal 2D graphics library for GUI work.")
(license (list license:expat license:asl2.0))))
(define-public rust-nohash-hasher-0.2
@@ -1661,29 +859,29 @@ modern @code{OpenGL} techniques.")
(build-system cargo-build-system)
(home-page "https://github.com/paritytech/nohash-hasher")
(synopsis
- "An implementation of `std::hash::Hasher` which does not hash at all.")
+ "An implementation of `std::hash::Hasher` which does not hash at all")
(description
- "An implementation of `std::hash::Hasher` which does not hash at all.")
+ "This package provides An implementation of `std::hash::Hasher` which does not hash at all.")
(license (list license:asl2.0 license:expat))))
(define-public rust-dyn-clonable-0.9
(package
(name "rust-dyn-clonable")
- (version "0.9.0")
+ (version "0.9.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "dyn-clonable" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1m4zlp5phn44znxqj6dkjilxpr5kvyil2ldxp77658h7wvq354jf"))))
+ (base32 "01885xap4dmln3yspzyr0mmcwnm9mdhlp80ag0iig3nmpywznvm3"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-dyn-clonable-impl" ,rust-dyn-clonable-impl-0.9)
("rust-dyn-clone" ,rust-dyn-clone-1))))
(home-page "https://github.com/kardeiz/objekt-clonable")
(synopsis "Attribute wrapper for dyn-clone")
- (description "Attribute wrapper for dyn-clone")
+ (description "This package provides Attribute wrapper for dyn-clone.")
(license license:expat)))
(define-public rust-ndk-glue-0.3
@@ -1708,7 +906,7 @@ modern @code{OpenGL} techniques.")
("rust-ndk-sys" ,rust-ndk-sys-0.2))))
(home-page "https://github.com/rust-windowing/android-ndk-rs")
(synopsis "Startup code for android binaries")
- (description "Startup code for android binaries")
+ (description "This package provides Startup code for android binaries.")
(license (list license:expat license:asl2.0))))
(define-public rust-speech-dispatcher-0.7
@@ -1730,7 +928,7 @@ modern @code{OpenGL} techniques.")
(synopsis
"Rusty interface to the speech-dispatcher speech synthesis library")
(description
- "Rusty interface to the speech-dispatcher speech synthesis library")
+ "This package provides Rusty interface to the speech-dispatcher speech synthesis library.")
(license license:lgpl2.1)))
(define-public rust-tolk-0.5
@@ -1751,9 +949,32 @@ modern @code{OpenGL} techniques.")
("rust-widestring" ,rust-widestring-0.4))))
(home-page "https://github.com/darbaga/tolk-rs")
(synopsis "bindings to tolk.dll, a library to talk to screen readers")
- (description "bindings to tolk.dll, a library to talk to screen readers")
+ (description
+ "This package provides bindings to tolk.dll, a library to talk to screen readers.")
(license license:expat)))
+(define-public rust-ouroboros-0.10
+ (package
+ (name "rust-ouroboros")
+ (version "0.10.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "ouroboros" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1phbp9wjp36bvkwlyvr2zznaack6xcvg0z1869r3i33iy5j6s8w4"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-aliasable" ,rust-aliasable-0.1)
+ ("rust-ouroboros-macro" ,rust-ouroboros-macro-0.10)
+ ("rust-stable-deref-trait" ,rust-stable-deref-trait-1))))
+ (home-page "https://github.com/someguynamedjosh/ouroboros")
+ (synopsis "Easy, safe self-referential struct generation")
+ (description
+ "This package provides Easy, safe self-referential struct generation.")
+ (license (list license:expat license:asl2.0))))
+
(define-public rust-mio-misc-1
(package
(name "rust-mio-misc")
@@ -1774,7 +995,8 @@ modern @code{OpenGL} techniques.")
#:cargo-development-inputs (("rust-rand" ,rust-rand-0.8))))
(home-page "https://github.com/onurzdg/mio-misc")
(synopsis "Miscellaneous components for use with Mio")
- (description "Miscellaneous components for use with Mio")
+ (description
+ "This package provides Miscellaneous components for use with Mio.")
(license license:expat)))
(define-public rust-ndk-0.3
@@ -1798,27 +1020,28 @@ modern @code{OpenGL} techniques.")
("rust-thiserror" ,rust-thiserror-1))))
(home-page "https://github.com/rust-mobile/ndk")
(synopsis "Safe Rust bindings to the Android NDK")
- (description "Safe Rust bindings to the Android NDK")
+ (description
+ "This package provides Safe Rust bindings to the Android NDK.")
(license (list license:expat license:asl2.0))))
-(define-public rust-atomic-refcell-0.1
+
+(define-public rust-x11-clipboard-0.5
(package
- (name "rust-atomic-refcell")
- (version "0.1.13")
+ (name "rust-x11-clipboard")
+ (version "0.5.3")
(source
(origin
(method url-fetch)
- (uri (crate-uri "atomic_refcell" version))
+ (uri (crate-uri "x11-clipboard" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "0z04ng59y22mwf315wamx78ybhjag0x6k7isc36hdgcv63c7rrj1"))))
+ (base32 "0g35qcmy7ayp3clbqnvvqjc7h02y9q2z294868c6mj0ap2vnhc27"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs (("rust-serde" ,rust-serde-1))
- #:cargo-development-inputs (("rust-serde-json" ,rust-serde-json-1))))
- (home-page "https://github.com/bholley/atomic_refcell")
- (synopsis "Threadsafe RefCell")
- (description "Threadsafe @code{RefCell}")
- (license (list license:asl2.0 license:expat))))
+ `(#:cargo-inputs (("rust-xcb" ,rust-xcb-0.10))))
+ (home-page "https://github.com/quininer/x11-clipboard")
+ (synopsis "x11 clipboard support for Rust")
+ (description "This package provides x11 clipboard support for Rust.")
+ (license license:expat)))
(define-public rust-cint-0.2
(package
@@ -1836,7 +1059,7 @@ modern @code{OpenGL} techniques.")
`(#:cargo-inputs (("rust-bytemuck" ,rust-bytemuck-1))))
(home-page "https://github.com/termhn/cint")
(synopsis
- "A lean, minimal, and stable set of types for color interoperation between crates in Rust.")
+ "lean, minimal, and stable set of types for color interoperation between crates in Rust.")
(description
"This package provides a lean, minimal, and stable set of types for color
interoperation between crates in Rust.")
@@ -1860,7 +1083,7 @@ interoperation between crates in Rust.")
("rust-serde" ,rust-serde-1))))
(home-page "https://github.com/emilk/egui/tree/master/crates/emath")
(synopsis "Minimal 2D math library for GUI work")
- (description "Minimal 2D math library for GUI work")
+ (description "This package provides Minimal 2D math library for GUI work.")
(license (list license:expat license:asl2.0))))
(define-public rust-tolk-sys-0.2
@@ -1880,7 +1103,7 @@ interoperation between crates in Rust.")
("rust-libc" ,rust-libc-0.2))))
(home-page "https://github.com/darbaga/tolk-sys")
(synopsis "Raw ffi bindings to Tolk.dll")
- (description "Raw ffi bindings to Tolk.dll")
+ (description "This package provides Raw ffi bindings to Tolk.dll.")
(license license:expat)))
(define-public rust-speech-dispatcher-sys-0.5
@@ -1900,7 +1123,7 @@ interoperation between crates in Rust.")
("rust-gcc" ,rust-gcc-0.3))))
(home-page "https://gitlab.com/ndarilek/speech-dispatcher-rs")
(synopsis "speech-dispatcher system bindings")
- (description "speech-dispatcher system bindings")
+ (description "This package provides speech-dispatcher system bindings.")
(license license:lgpl2.1)))
(define-public rust-android-logger-0.9
@@ -1922,8 +1145,7 @@ interoperation between crates in Rust.")
("rust-log" ,rust-log-0.4))))
(home-page "https://github.com/rust-mobile/android_logger-rs")
(synopsis
- "A logging implementation for `log` which hooks to android log output.
-")
+ "logging implementation for `log` which hooks to android log output.")
(description
"This package provides a logging implementation for `log` which hooks to android
log output.")
@@ -1932,23 +1154,23 @@ log output.")
(define-public rust-dyn-clonable-impl-0.9
(package
(name "rust-dyn-clonable-impl")
- (version "0.9.0")
+ (version "0.9.2")
(source
(origin
(method url-fetch)
(uri (crate-uri "dyn-clonable-impl" version))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
- (base32 "1icrjdqiriiy6abxpsygyxylgxg2gq5j9z876pslqdrwazm413jm"))))
+ (base32 "0fi1fy6r2zaq88n21yszlcdbm66iz3xi2dbgl8vrm5sq83ap31ky"))))
(build-system cargo-build-system)
(arguments
`(#:cargo-inputs (("rust-proc-macro2" ,rust-proc-macro2-1)
("rust-quote" ,rust-quote-1)
- ("rust-syn" ,rust-syn-1))
+ ("rust-syn" ,rust-syn-2))
#:cargo-development-inputs (("rust-dyn-clone" ,rust-dyn-clone-1))))
(home-page "https://github.com/kardeiz/objekt-clonable")
(synopsis "Attribute wrapper for dyn-clone")
- (description "Attribute wrapper for dyn-clone")
+ (description "This package provides Attribute wrapper for dyn-clone.")
(license license:expat)))
(define-public rust-jni-glue-0.0.10
@@ -1970,11 +1192,310 @@ log output.")
(synopsis
"Manually written glue code to accompany the jni-bindgen code generator for binding to JVM APIs from Rust")
(description
- "Manually written glue code to accompany the jni-bindgen code generator for
-binding to JVM APIs from Rust")
+ "This package provides Manually written glue code to accompany the jni-bindgen code generator for
+binding to JVM APIs from Rust.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-xcb-0.10
+ (package
+ (name "rust-xcb")
+ (version "0.10.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "xcb" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "171acbbbsr05ilw7ih0cc79qysci5pv91zyrdlfcs87pdncjn7kp"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-quick-xml" ,rust-quick-xml-0.22)
+ ("rust-x11" ,rust-x11-2))
+ #:cargo-development-inputs (("rust-gl" ,rust-gl-0.5)
+ ("rust-x11" ,rust-x11-2))))
+ (home-page "https://github.com/rust-x-bindings/rust-xcb")
+ (synopsis "Rust safe bindings for XCB")
+ (description "This package provides Rust safe bindings for XCB.")
+ (license license:expat)))
+
+(define-public rust-gl-0.5
+ (package
+ (name "rust-gl")
+ (version "0.5.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "gl" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1a1xjar29zpw0lksqcskcf1x04zzs230x5qwchiigkpfriwykss9"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-gl-generator" ,rust-gl-generator-0.4)
+ ("rust-khronos-api" ,rust-khronos-api-1))
+ #:cargo-development-inputs (("rust-glutin" ,rust-glutin-0.4))))
+ (home-page "https://github.com/brendanzab/gl-rs/")
+ (synopsis "OpenGL bindings")
+ (description "This package provides @code{OpenGL} bindings.")
+ (license license:asl2.0)))
+
+(define-public rust-core-foundation-0.10
+ (package
+ (name "rust-core-foundation")
+ (version "0.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "core-foundation" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0qscay14s2rwkg8nd8ljhiaf149hj8sfy95d70zssy64r3jp2lmm"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.8)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-uuid" ,rust-uuid-1))))
+ (home-page "https://github.com/servo/core-foundation-rs")
+ (synopsis "Bindings to Core Foundation for macOS")
+ (description
+ "This package provides Bindings to Core Foundation for @code{macOS}.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-criterion-0.3
+ (package
+ (name "rust-criterion")
+ (version "0.3.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "criterion" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "13yd64ah93gkbdv7qq4cr6rhgl9979jjcjk3gkhnav1b7glns7dh"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-async-std" ,rust-async-std-1)
+ ("rust-atty" ,rust-atty-0.2)
+ ("rust-cast" ,rust-cast-0.3)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-criterion-plot" ,rust-criterion-plot-0.4)
+ ("rust-csv" ,rust-csv-1)
+ ("rust-futures" ,rust-futures-0.3)
+ ("rust-itertools" ,rust-itertools-0.10)
+ ("rust-lazy-static" ,rust-lazy-static-1)
+ ("rust-num-traits" ,rust-num-traits-0.2)
+ ("rust-oorandom" ,rust-oorandom-11)
+ ("rust-plotters" ,rust-plotters-0.3)
+ ("rust-rayon" ,rust-rayon-1)
+ ("rust-regex" ,rust-regex-1)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-serde-cbor" ,rust-serde-cbor-0.11)
+ ("rust-serde-derive" ,rust-serde-derive-1)
+ ("rust-serde-json" ,rust-serde-json-1)
+ ("rust-smol" ,rust-smol-1)
+ ("rust-tinytemplate" ,rust-tinytemplate-1)
+ ("rust-tokio" ,rust-tokio-1)
+ ("rust-walkdir" ,rust-walkdir-2))
+ #:cargo-development-inputs (("rust-approx" ,rust-approx-0.5)
+ ("rust-futures" ,rust-futures-0.3)
+ ("rust-quickcheck" ,rust-quickcheck-1)
+ ("rust-rand" ,rust-rand-0.8)
+ ("rust-tempfile" ,rust-tempfile-3))))
+ (home-page "https://bheisler.github.io/criterion.rs/book/index.html")
+ (synopsis "Statistics-driven micro-benchmarking library")
+ (description
+ "This package provides Statistics-driven micro-benchmarking library.")
+ (license (list license:asl2.0 license:expat))))
+
+(define-public rust-criterion-plot-0.4
+ (package
+ (name "rust-criterion-plot")
+ (version "0.4.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "criterion-plot" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0xhq0jz1603585h7xvm3s4x9irmifjliklszbzs4cda00y1cqwr6"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-cast" ,rust-cast-0.3)
+ ("rust-itertools" ,rust-itertools-0.10))
+ #:cargo-development-inputs (("rust-itertools-num" ,rust-itertools-num-0.1)
+ ("rust-num-complex" ,rust-num-complex-0.4)
+ ("rust-rand" ,rust-rand-0.8))))
+ (home-page "https://github.com/bheisler/criterion.rs")
+ (synopsis "Criterion's plotting library")
+ (description "This package provides Criterion's plotting library.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-webbrowser-0.5
+ (package
+ (name "rust-webbrowser")
+ (version "0.5.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "webbrowser" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "12hmi768mnpssfh9w61ys75v706jj3pcy4fliqq21dnnj1j1bbgc"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-web-sys" ,rust-web-sys-0.3)
+ ("rust-widestring" ,rust-widestring-0.4)
+ ("rust-winapi" ,rust-winapi-0.3))))
+ (home-page "https://github.com/amodm/webbrowser-rs")
+ (synopsis "Open URLs in web browsers available on a platform")
+ (description
+ "This package provides Open URLs in web browsers available on a platform.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-gl-generator-0.4
+ (package
+ (name "rust-gl-generator")
+ (version "0.4.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "gl_generator" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "048hnacz40sabbq50nccjf5qdiq9hw1wq0sbbmkkzpksdhnmp41p"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-khronos-api" ,rust-khronos-api-1)
+ ("rust-log" ,rust-log-0.3)
+ ("rust-xml-rs" ,rust-xml-rs-0.2))))
+ (home-page "https://github.com/brendanzab/gl-rs/")
+ (synopsis
+ "Code generators for creating bindings to the Khronos OpenGL APIs")
+ (description
+ "This package provides Code generators for creating bindings to the Khronos @code{OpenGL} APIs.")
+ (license license:asl2.0)))
+
+(define-public rust-khronos-api-1
+ (package
+ (name "rust-khronos-api")
+ (version "1.0.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "khronos_api" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "19wib9dybhlgxpwp77sl5bbck4qas2vfldx43j7syrfn64m8x86m"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/brendanzab/gl-rs/")
+ (synopsis "The Khronos XML API Registry, exposed as byte string constants")
+ (description
+ "This package provides The Khronos XML API Registry, exposed as byte string constants.")
+ (license license:asl2.0)))
+
+(define-public rust-glutin-0.4
+ (package
+ (name "rust-glutin")
+ (version "0.4.9")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "glutin" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "10d259jqbsalalnbag5mkqpqswyl424k666sqjzxbjlj2s5in7x7"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-android-glue" ,rust-android-glue-0.1)
+ ("rust-cgl" ,rust-cgl-0.1)
+ ("rust-cocoa" ,rust-cocoa-0.2)
+ ("rust-core-foundation" ,rust-core-foundation-0.2)
+ ("rust-core-graphics" ,rust-core-graphics-0.3)
+ ("rust-dwmapi-sys" ,rust-dwmapi-sys-0.1)
+ ("rust-gdi32-sys" ,rust-gdi32-sys-0.1)
+ ("rust-gl-generator" ,rust-gl-generator-0.4)
+ ("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+ ("rust-khronos-api" ,rust-khronos-api-1)
+ ("rust-lazy-static" ,rust-lazy-static-0.1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-objc" ,rust-objc-0.1)
+ ("rust-osmesa-sys" ,rust-osmesa-sys-0.0.5)
+ ("rust-shared-library" ,rust-shared-library-0.1)
+ ("rust-shell32-sys" ,rust-shell32-sys-0.1)
+ ("rust-user32-sys" ,rust-user32-sys-0.1)
+ ("rust-wayland-client" ,rust-wayland-client-0.5)
+ ("rust-wayland-kbd" ,rust-wayland-kbd-0.3)
+ ("rust-wayland-window" ,rust-wayland-window-0.2)
+ ("rust-winapi" ,rust-winapi-0.2)
+ ("rust-x11-dl" ,rust-x11-dl-2))))
+ (home-page "https://github.com/rust-windowing/glutin")
+ (synopsis "Cross-platform OpenGL context provider")
+ (description
+ "This package provides Cross-platform @code{OpenGL} context provider.")
+ (license license:asl2.0)))
+
+(define-public rust-android-glue-0.1
+ (package
+ (name "rust-android-glue")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "android_glue" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0y07v7vvirxlxbbkajglfdx4hfrm2vbzqbpwzkh5ib3vid7j25zp"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/tomaka/android-rs-glue")
+ (synopsis "Glue for the Android JNI")
+ (description "This package provides Glue for the Android JNI.")
+ (license license:expat)))
+
+(define-public rust-cgl-0.1
+ (package
+ (name "rust-cgl")
+ (version "0.1.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "cgl" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "044cycnn760gki4jnvsagwr3wds9pdmnpgsx8ysrqwsslv67ipcb"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-gleam" ,rust-gleam-0.2)
+ ("rust-libc" ,rust-libc-0.2))))
+ (home-page "https://github.com/servo/cgl-rs")
+ (synopsis "Rust bindings for CGL on Mac")
+ (description "This package provides Rust bindings for CGL on Mac.")
(license (list license:expat license:asl2.0))))
-(define-public rust-smithay-client-toolkit-0.12.3
+(define-public rust-gleam-0.2
+ (package
+ (name "rust-gleam")
+ (version "0.2.32")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "gleam" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "009d8rgxygh7sjpzl5kk7jklkqzvgs76gb5bqn0a0a6mg3jy144m"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-gl-generator" ,rust-gl-generator-0.5)
+ ("rust-pkg-config" ,rust-pkg-config-0.3))))
+ (home-page "https://github.com/servo/gleam")
+ (synopsis "Generated OpenGL bindings and wrapper for Servo")
+ (description
+ "This package provides Generated @code{OpenGL} bindings and wrapper for Servo.")
+ (license (list license:asl2.0 license:expat))))
+
+(define-public rust-smithay-client-toolkit-0.12
(package
(name "rust-smithay-client-toolkit")
(version "0.12.3")
@@ -2000,7 +1521,692 @@ binding to JVM APIs from Rust")
("rust-wayland-protocols" ,rust-wayland-protocols-0.28))
#:cargo-development-inputs (("rust-image" ,rust-image-0.23))))
(home-page "https://github.com/smithay/client-toolkit")
- (synopsis "Toolkit for making client wayland applications.")
- (description "Toolkit for making client wayland applications.")
+ (synopsis "Toolkit for making client wayland applications")
+ (description
+ "This package provides Toolkit for making client wayland applications.")
+ (license license:expat)))
+
+(define-public rust-gl-generator-0.5
+ (package
+ (name "rust-gl-generator")
+ (version "0.5.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "gl_generator" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0756xj1inkh0j5mcigsyyl5amhg954hkd13av4d9wbnmlcmvzb77"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-khronos-api" ,rust-khronos-api-1)
+ ("rust-log" ,rust-log-0.3)
+ ("rust-xml-rs" ,rust-xml-rs-0.6))))
+ (home-page "https://github.com/brendanzab/gl-rs/")
+ (synopsis
+ "Code generators for creating bindings to the Khronos OpenGL APIs")
+ (description
+ "This package provides Code generators for creating bindings to the Khronos @code{OpenGL} APIs.")
+ (license license:asl2.0)))
+
+(define-public rust-xml-rs-0.6
+ (package
+ (name "rust-xml-rs")
+ (version "0.6.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "xml-rs" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "08a6lydyf3cmknicf0hnqdwyz5i4hfq20rcpswhig5bbw495x571"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-0.9))))
+ (home-page "https://lib.rs/crates/xml-rs")
+ (synopsis "An XML library in pure Rust")
+ (description "This package provides An XML library in pure Rust.")
(license license:expat)))
+(define-public rust-cocoa-0.2
+ (package
+ (name "rust-cocoa")
+ (version "0.2.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "cocoa" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "10lzgy15wdk2vq5bg6xa8iqsbh8b44159p839z9mimmgkrxi6bbn"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-0.3)
+ ("rust-core-graphics" ,rust-core-graphics-0.3)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-objc" ,rust-objc-0.1))))
+ (home-page "https://github.com/servo/core-foundation-rs")
+ (synopsis "Bindings to Cocoa for macOS")
+ (description "This package provides Bindings to Cocoa for @code{macOS}.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-bitflags-0.3
+ (package
+ (name "rust-bitflags")
+ (version "0.3.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "bitflags" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "171qfyjn5z86z6i5jynpwmwf03m8n6hql5di3n5l6kiw216nz1ij"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/bitflags/bitflags")
+ (synopsis "macro to generate structures which behave like bitflags.")
+ (description
+ "This package provides a macro to generate structures which behave like bitflags.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-core-graphics-0.3
+ (package
+ (name "rust-core-graphics")
+ (version "0.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "core-graphics" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "08y7si6hiwm25g4a9vdcqzhwpgkqaxabwcfjlyxfsam25c1ccmhc"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-core-foundation" ,rust-core-foundation-0.2)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-serde" ,rust-serde-0.7))))
+ (home-page "https://github.com/servo/core-foundation-rs")
+ (synopsis "Bindings to Core Graphics for macOS")
+ (description
+ "This package provides Bindings to Core Graphics for @code{macOS}.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-objc-0.1
+ (package
+ (name "rust-objc")
+ (version "0.1.8")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "objc" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0mj00d6fzdn518ryq4r1r32njgvgg1yri8n7by2rh4q3r1zgscsr"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)
+ ("rust-malloc-buf" ,rust-malloc-buf-0.0.6)
+ ("rust-objc-exception" ,rust-objc-exception-0.0.2))))
+ (home-page "http://github.com/SSheldon/rust-objc")
+ (synopsis "Objective-C Runtime bindings and wrapper for Rust")
+ (description
+ "This package provides Objective-C Runtime bindings and wrapper for Rust.")
+ (license license:expat)))
+
+(define-public rust-core-foundation-0.2
+ (package
+ (name "rust-core-foundation")
+ (version "0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "core-foundation" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0rvcn7ab5r69wvn7gby745jlpy8pirfywcdxbiypy083s93dggr5"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-core-foundation-sys" ,rust-core-foundation-sys-0.2)
+ ("rust-libc" ,rust-libc-0.2))))
+ (home-page "https://github.com/servo/core-foundation-rs")
+ (synopsis "Bindings to Core Foundation for macOS")
+ (description
+ "This package provides Bindings to Core Foundation for @code{macOS}.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-serde-0.7
+ (package
+ (name "rust-serde")
+ (version "0.7.15")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "serde" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "14haziy946c4m8h5bgg3c98558rbjim3jnl1c5zjdi4fm8r0f3hv"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-clippy" ,rust-clippy-0.0.302))))
+ (home-page "https://serde.rs")
+ (synopsis "generic serialization/deserialization framework")
+ (description
+ "This package provides a generic serialization/deserialization framework.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-malloc-buf-0.0.6
+ (package
+ (name "rust-malloc-buf")
+ (version "0.0.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "malloc_buf" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1jqr77j89pwszv51fmnknzvd53i1nkmcr8rjrvcxhm4dx1zr1fv2"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+ (home-page "https://github.com/SSheldon/malloc_buf")
+ (synopsis "Structs for handling malloc'd memory passed to Rust")
+ (description
+ "This package provides Structs for handling malloc'd memory passed to Rust.")
+ (license license:expat)))
+
+(define-public rust-objc-exception-0.0.2
+ (package
+ (name "rust-objc-exception")
+ (version "0.0.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "objc_exception" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "02a22wqcx0hkbnsin7fzgpvvhw8ynv0sks2l4ra1wmk556k8axar"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-gcc" ,rust-gcc-0.3)
+ ("rust-libc" ,rust-libc-0.2))))
+ (home-page "http://github.com/SSheldon/rust-objc-exception")
+ (synopsis
+ "Rust interface for Objective-C's throw and try/catch statements")
+ (description
+ "This package provides Rust interface for Objective-C's throw and try/catch statements.")
+ (license license:expat)))
+
+(define-public rust-core-foundation-sys-0.2
+ (package
+ (name "rust-core-foundation-sys")
+ (version "0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "core-foundation-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "13f7f3kblyj6yxcxm74yg84vj9ahaprlc1vgblagmj6bzmzmsnh6"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2))))
+ (home-page "https://github.com/servo/core-foundation-rs")
+ (synopsis "Bindings to Core Foundation for macOS")
+ (description
+ "This package provides Bindings to Core Foundation for @code{macOS}.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-dwmapi-sys-0.1
+ (package
+ (name "rust-dwmapi-sys")
+ (version "0.1.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "dwmapi-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0xiyc8vibsda0kbamr9zkjvkdzdxcq8bs1g5mq4yc4mbmr168jxl"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.2)
+ ("rust-winapi-build" ,rust-winapi-build-0.1))))
+ (home-page "https://github.com/retep998/winapi-rs")
+ (synopsis
+ "Contains function definitions for the Windows API library dwmapi. See winapi for types and constants")
+ (description
+ "This package contains function definitions for the Windows API library dwmapi.
+See winapi for types and constants.")
+ (license license:expat)))
+
+(define-public rust-gdi32-sys-0.1
+ (package
+ (name "rust-gdi32-sys")
+ (version "0.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "gdi32-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "04bcwaia0q46k4rajwpivdvlfyc2gw5vnvkbz247hlh724nbjglf"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.2)
+ ("rust-winapi-build" ,rust-winapi-build-0.1))))
+ (home-page "https://github.com/retep998/winapi-rs")
+ (synopsis
+ "Contains function definitions for the Windows API library gdi32. See winapi for types and constants")
+ (description
+ "This package contains function definitions for the Windows API library gdi32.
+See winapi for types and constants.")
+ (license license:expat)))
+
+(define-public rust-osmesa-sys-0.0.5
+ (package
+ (name "rust-osmesa-sys")
+ (version "0.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "osmesa-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "179nqpaxaz1x48gs365v5cmwm76849n2rpw0q92ms9gsf26jsp72"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-libc" ,rust-libc-0.2)
+ ("rust-shared-library" ,rust-shared-library-0.1))))
+ (home-page "https://github.com/Daggerbot/osmesa-rs.git")
+ (synopsis "OSMesa library bindings for Rust")
+ (description "This package provides OSMesa library bindings for Rust.")
+ (license license:cc0)))
+
+(define-public rust-shell32-sys-0.1
+ (package
+ (name "rust-shell32-sys")
+ (version "0.1.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "shell32-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0b0jjnv8rr4flllvpx9lkfvvxdl3hac53cd2klf14mqz2134pq4y"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.2)
+ ("rust-winapi-build" ,rust-winapi-build-0.1))))
+ (home-page "https://github.com/retep998/winapi-rs")
+ (synopsis
+ "Contains function definitions for the Windows API library shell32. See winapi for types and constants")
+ (description
+ "This package contains function definitions for the Windows API library shell32.
+See winapi for types and constants.")
+ (license license:expat)))
+
+(define-public rust-wayland-client-0.5
+ (package
+ (name "rust-wayland-client")
+ (version "0.5.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "wayland-client" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "17jmi893jr34s8w175rnljwqi7vxc8d0wls0inhc0p3v2m60klyf"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-0.7)
+ ("rust-crossbeam" ,rust-crossbeam-0.2)
+ ("rust-dlib" ,rust-dlib-0.3)
+ ("rust-lazy-static" ,rust-lazy-static-0.1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-wayland-scanner" ,rust-wayland-scanner-0.5)
+ ("rust-wayland-sys" ,rust-wayland-sys-0.5))
+ #:cargo-development-inputs (("rust-byteorder" ,rust-byteorder-0.5)
+ ("rust-tempfile" ,rust-tempfile-2))))
+ (home-page "https://github.com/smithay/wayland-rs")
+ (synopsis
+ "Bindings to the standard C implementation of the wayland protocol, client side")
+ (description
+ "This package provides Bindings to the standard C implementation of the wayland protocol, client side.")
+ (license license:expat)))
+
+(define-public rust-wayland-kbd-0.3
+ (package
+ (name "rust-wayland-kbd")
+ (version "0.3.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "wayland-kbd" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0l5hirs1r1s1mwc9japw9xb1gsms893x5v7zprvhga8x9kl11g3k"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-0.7)
+ ("rust-dlib" ,rust-dlib-0.3)
+ ("rust-lazy-static" ,rust-lazy-static-0.1)
+ ("rust-memmap" ,rust-memmap-0.2)
+ ("rust-wayland-client" ,rust-wayland-client-0.5))
+ #:cargo-development-inputs (("rust-wayland-client" ,rust-wayland-client-0.5))))
+ (home-page "https://github.com/smithay/wayland-kbd")
+ (synopsis "Keyboard mapping utility for wayland-client using libxkbcommon")
+ (description
+ "This package provides Keyboard mapping utility for wayland-client using libxkbcommon.")
+ (license license:expat)))
+
+(define-public rust-wayland-window-0.2
+ (package
+ (name "rust-wayland-window")
+ (version "0.2.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "wayland-window" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0k48mmkmpkj3jaj60j85raigh0ngk1yzp2fq48ac5jb3m39nk6rh"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-byteorder" ,rust-byteorder-0.5)
+ ("rust-tempfile" ,rust-tempfile-2)
+ ("rust-wayland-client" ,rust-wayland-client-0.5))
+ #:cargo-development-inputs (("rust-wayland-client" ,rust-wayland-client-0.5))))
+ (home-page "https://github.com/Smithay/wayland-window")
+ (synopsis
+ "minimalistic window-decorations library built on top of wayland-client.")
+ (description
+ "This package provides a minimalistic window-decorations library built on top of
+wayland-client.")
+ (license license:expat)))
+
+(define-public rust-user32-sys-0.1
+ (package
+ (name "rust-user32-sys")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "user32-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "02pqzgm7qfdvlb0zqry98h76zwvaq19idd99i0ch8b4m7fc1kdz6"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.2)
+ ("rust-winapi-build" ,rust-winapi-build-0.1))))
+ (home-page "https://github.com/retep998/winapi-rs")
+ (synopsis
+ "Contains function definitions for the Windows API library user32. See winapi for types and constants")
+ (description
+ "This package contains function definitions for the Windows API library user32.
+See winapi for types and constants.")
+ (license license:expat)))
+
+(define-public rust-dlib-0.3
+ (package
+ (name "rust-dlib")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "dlib" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1v36322ilmdd1w3kh2xhm58ma9mxq9i4xdcwy84lav63w56cx2ql"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-libloading" ,rust-libloading-0.3))))
+ (home-page "https://github.com/elinorbgr/dlib")
+ (synopsis
+ "Helper macros for handling manually loading optional system libraries")
+ (description
+ "This package provides Helper macros for handling manually loading optional system libraries.")
+ (license license:expat)))
+
+(define-public rust-wayland-scanner-0.5
+ (package
+ (name "rust-wayland-scanner")
+ (version "0.5.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "wayland-scanner" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0rjg6qs9a9j9895djjp9f2d20kizh0fm2947msmwpbvb1lvnj62s"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-xml-rs" ,rust-xml-rs-0.3))))
+ (home-page "https://github.com/smithay/wayland-rs")
+ (synopsis
+ "Wayland Scanner for generating rust APIs from XML wayland protocol files")
+ (description
+ "This package provides Wayland Scanner for generating rust APIs from XML wayland protocol files.")
+ (license license:expat)))
+
+(define-public rust-wayland-sys-0.5
+ (package
+ (name "rust-wayland-sys")
+ (version "0.5.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "wayland-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0fl01v8wghplps6ba23zryz89dgidfvz3sl2bwhl8rg5bpzgfcwn"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-dlib" ,rust-dlib-0.3)
+ ("rust-lazy-static" ,rust-lazy-static-0.1)
+ ("rust-libc" ,rust-libc-0.2))))
+ (home-page "https://github.com/smithay/wayland-rs")
+ (synopsis
+ "FFI bindings to the various libwayland-*.so libraries. You should only need this crate if you are working on custom wayland protocol extensions. Look at the crate wayland-client for usable bindings")
+ (description
+ "This package provides FFI bindings to the various libwayland-*.so libraries. You should only need
+this crate if you are working on custom wayland protocol extensions. Look at
+the crate wayland-client for usable bindings.")
+ (license license:expat)))
+
+(define-public rust-lazy-static-0.1
+ (package
+ (name "rust-lazy-static")
+ (version "0.1.16")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "lazy_static" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "05vl1h4b0iv800grsdyc3fg2bq29p70wjav6zpjvxxd5i8d6s66g"))))
+ (build-system cargo-build-system)
+ (home-page "https://github.com/rust-lang-nursery/lazy-static.rs")
+ (synopsis "macro for declaring lazily evaluated statics in Rust.")
+ (description
+ "This package provides a macro for declaring lazily evaluated statics in Rust.")
+ (license license:expat)))
+
+(define-public rust-libloading-0.3
+ (package
+ (name "rust-libloading")
+ (version "0.3.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "libloading" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0risz19rllhdc0d7nkpwkf4pcbjjgg1iim0kkmzb6kkp874hl0ha"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-kernel32-sys" ,rust-kernel32-sys-0.2)
+ ("rust-lazy-static" ,rust-lazy-static-0.2)
+ ("rust-target-build-utils" ,rust-target-build-utils-0.3)
+ ("rust-winapi" ,rust-winapi-0.2))))
+ (home-page "https://github.com/nagisa/rust_libloading/")
+ (synopsis
+ "Bindings around the platform's dynamic library loading primitives with greatly improved memory safety")
+ (description
+ "This package provides Bindings around the platform's dynamic library loading primitives with greatly
+improved memory safety.")
+ (license license:isc)))
+
+(define-public rust-wayland-sys-0.5
+ (package
+ (name "rust-wayland-sys")
+ (version "0.5.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "wayland-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0fl01v8wghplps6ba23zryz89dgidfvz3sl2bwhl8rg5bpzgfcwn"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-dlib" ,rust-dlib-0.3)
+ ("rust-lazy-static" ,rust-lazy-static-0.1)
+ ("rust-libc" ,rust-libc-0.2))))
+ (home-page "https://github.com/smithay/wayland-rs")
+ (synopsis
+ "FFI bindings to the various libwayland-*.so libraries. You should only need this crate if you are working on custom wayland protocol extensions. Look at the crate wayland-client for usable bindings")
+ (description
+ "This package provides FFI bindings to the various libwayland-*.so libraries. You should only need
+this crate if you are working on custom wayland protocol extensions. Look at
+the crate wayland-client for usable bindings.")
+ (license license:expat)))
+
+(define-public rust-wayland-scanner-0.5
+ (package
+ (name "rust-wayland-scanner")
+ (version "0.5.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "wayland-scanner" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0rjg6qs9a9j9895djjp9f2d20kizh0fm2947msmwpbvb1lvnj62s"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-xml-rs" ,rust-xml-rs-0.3))))
+ (home-page "https://github.com/smithay/wayland-rs")
+ (synopsis
+ "Wayland Scanner for generating rust APIs from XML wayland protocol files")
+ (description
+ "This package provides Wayland Scanner for generating rust APIs from XML wayland protocol files.")
+ (license license:expat)))
+
+(define-public rust-user32-sys-0.1
+ (package
+ (name "rust-user32-sys")
+ (version "0.1.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "user32-sys" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "02pqzgm7qfdvlb0zqry98h76zwvaq19idd99i0ch8b4m7fc1kdz6"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-winapi" ,rust-winapi-0.2)
+ ("rust-winapi-build" ,rust-winapi-build-0.1))))
+ (home-page "https://github.com/retep998/winapi-rs")
+ (synopsis
+ "Contains function definitions for the Windows API library user32. See winapi for types and constants")
+ (description
+ "This package contains function definitions for the Windows API library user32.
+See winapi for types and constants.")
+ (license license:expat)))
+
+(define-public rust-ouroboros-macro-0.10
+ (package
+ (name "rust-ouroboros-macro")
+ (version "0.10.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "ouroboros_macro" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0s6aic49lyclhas6bh1f84qfy31m333mcvnmn4v02v5rdrx8aqzl"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-inflector" ,rust-inflector-0.11)
+ ("rust-proc-macro-error" ,rust-proc-macro-error-1)
+ ("rust-proc-macro2" ,rust-proc-macro2-1)
+ ("rust-quote" ,rust-quote-1)
+ ("rust-syn" ,rust-syn-1))))
+ (home-page "https://github.com/someguynamedjosh/ouroboros")
+ (synopsis "Proc macro for ouroboros crate")
+ (description "This package provides Proc macro for ouroboros crate.")
+ (license (list license:expat license:asl2.0))))
+
+(define-public rust-crossbeam-0.2
+ (package
+ (name "rust-crossbeam")
+ (version "0.2.12")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "crossbeam" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1gmrayc93lygb8v62bj0c5zwyflvj5bli7ari650k259nlyncrmx"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-development-inputs (("rust-rand" ,rust-rand-0.3))))
+ (home-page "https://github.com/crossbeam-rs/crossbeam")
+ (synopsis "Tools for concurrent programming")
+ (description "This package provides tools for concurrent programming.")
+ (license (list license:asl2.0 license:expat))))
+
+(define-public rust-xml-rs-0.3
+ (package
+ (name "rust-xml-rs")
+ (version "0.3.8") ; This version was yanked!
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "xml-rs" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0fzyr8892g9zry6f17pnfdaxlsaqmyx64wbxgagldik0haln94kj"))))
+ (properties '((crate-version-yanked? . #t)))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-bitflags" ,rust-bitflags-0.7))))
+ (home-page "https://lib.rs/crates/xml-rs")
+ (synopsis "An XML library in pure Rust")
+ (description "This package provides An XML library in pure Rust.")
+ (license license:expat)))
+
+(define-public rust-target-build-utils-0.3
+ (package
+ (name "rust-target-build-utils")
+ (version "0.3.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "target_build_utils" version))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "0p7713x4bpbwi11l196z1mi8ym8qj1cdnab1mm2ffpm2wi516g81"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs (("rust-phf" ,rust-phf-0.7)
+ ("rust-phf-codegen" ,rust-phf-codegen-0.7)
+ ("rust-serde-json" ,rust-serde-json-0.9))))
+ (home-page "https://github.com/nagisa/target_build_utils.rs")
+ (synopsis
+ "DEPRECATED: Use Cargo environment variables `CARGO_CFG_TARGET_*`")
+ (description
+ "This package provides DEPRECATED: Use Cargo environment variables `CARGO_CFG_TARGET_*`.")
+ (license (list license:isc license:asl2.0))))
+
diff --git a/vesktop.scm b/vesktop.scm
index a1a8da9..4ab8e10 100644
--- a/vesktop.scm
+++ b/vesktop.scm
@@ -113,7 +113,7 @@
(define-public vesktop
(package
(name "vesktop-bin")
- (version "1.5.3")
+ (version "1.5.6")
(source
(origin
(method url-fetch)
@@ -121,7 +121,7 @@
(string-append
"https://github.com/Vencord/Vesktop/releases/download/v" version "/vesktop_" version "_amd64.deb"))
(sha256
- (base32 "0zjbwhmd270qczj19yy3gfb250zxxa1al8zn4bwl73ij9bkhjwfc"))))
+ (base32 "00wsk9x3jln62qpkf27nl0ncqz5jh2iqfykj20np9xndw10hmvqj"))))
(supported-systems '("x86_64-linux"))
(build-system (use-modern-gcc-on-chromium-binary chromium-binary-build-system))
(arguments