mirror of
https://codeberg.org/hako/Rosenthal.git
synced 2025-05-28 23:05:21 +00:00
rosenthal: Add atuin.
* rosenthal/packages.scm: New file. * rosenthal/packages/patches/atuin-disable-failing-tests.patch: New file. * rosenthal/packages/rust-crates.scm (atuin-cargo-inputs): New variable. * rosenthal/packages/rust-apps.scm (atuin): New variable. * rosenthal/packages/binaries.scm (atuin-bin): Deprecated by atuin. * README.org (Packages): Update. * etc/manifest: Update.
This commit is contained in:
parent
8ab2595528
commit
891eb84b38
@ -83,6 +83,7 @@ Rosenthal 頻道定義如下,將其加入 =~/.config/guix/channels.scm= 以由
|
||||
|
||||
** Content / 內容
|
||||
*** Packages / 軟件包
|
||||
+ atuin
|
||||
+ cloudflared
|
||||
+ dinit
|
||||
+ dnsmasq-china-list
|
||||
@ -95,7 +96,6 @@ Rosenthal 頻道定義如下,將其加入 =~/.config/guix/channels.scm= 以由
|
||||
+ tree-sitter-yaml
|
||||
|
||||
Binary Packages / 二進制包:
|
||||
+ atuin-bin
|
||||
+ bitwarden-icecat
|
||||
+ clash-bin
|
||||
+ hugo-bin
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
(specifications->manifest
|
||||
'(
|
||||
"atuin-bin"
|
||||
"atuin"
|
||||
"cloudflare-warp-bin"
|
||||
"cloudflared"
|
||||
"dinit"
|
||||
|
66
rosenthal/packages.scm
Normal file
66
rosenthal/packages.scm
Normal file
@ -0,0 +1,66 @@
|
||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
;;; Copyright © 2015, 2018 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2025 Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
|
||||
(define-module (rosenthal packages)
|
||||
#:use-module (gnu packages)
|
||||
#:use-module (guix diagnostics)
|
||||
#:use-module (guix i18n)
|
||||
#:use-module (ice-9 match)
|
||||
#:use-module (srfi srfi-34)
|
||||
#:replace (%patch-path
|
||||
search-patch)
|
||||
#:export (rosenthal-patches))
|
||||
|
||||
;;; Commentary:
|
||||
;;;
|
||||
;;; This module refines the default value of some parameters from (gnu
|
||||
;;; packages) and the syntax/procedures using those. This allows
|
||||
;;; 'search-paths' and friends to work without any user intervention.
|
||||
;;;
|
||||
;;; Code:
|
||||
|
||||
(define %rosenthal-root-directory
|
||||
;; This is like %distro-root-directory from (gnu packages), with adjusted
|
||||
;; paths.
|
||||
(letrec-syntax ((dirname* (syntax-rules ()
|
||||
((_ file)
|
||||
(dirname file))
|
||||
((_ file head tail ...)
|
||||
(dirname (dirname* file tail ...)))))
|
||||
(try (syntax-rules ()
|
||||
((_ (file things ...) rest ...)
|
||||
(match (search-path %load-path file)
|
||||
(#f
|
||||
(try rest ...))
|
||||
(absolute
|
||||
(dirname* absolute things ...))))
|
||||
((_)
|
||||
#f))))
|
||||
(try ("rosenthal/packages/binaries.scm" rosenthal/ packages/)
|
||||
("rosenthal/packages.scm" rosenthal/))))
|
||||
|
||||
(define %patch-path
|
||||
;; Define it after '%package-module-path' so that '%load-path' contains user
|
||||
;; directories, allowing patches in $GUIX_PACKAGE_PATH to be found.
|
||||
(make-parameter
|
||||
(map (lambda (directory)
|
||||
(if (string=? directory %rosenthal-root-directory)
|
||||
(string-append directory "/rosenthal/packages/patches")
|
||||
directory))
|
||||
%load-path)))
|
||||
|
||||
;;; XXX: The following must be redefined to make use of the overridden
|
||||
;;; %patch-path parameter above.
|
||||
(define (search-patch file-name)
|
||||
"Search the patch FILE-NAME. Raise an error if not found."
|
||||
(or (search-path (%patch-path) file-name)
|
||||
(raise (formatted-message (G_ "~a: patch not found")
|
||||
file-name))))
|
||||
|
||||
;;; XXX: `search-patches' being syntax, it can't be overridden by the module
|
||||
;;; system, or so it seems, so we simply rename it.
|
||||
(define-syntax-rule (rosenthal-patches file-name ...)
|
||||
"Return the list of absolute file names corresponding to each
|
||||
FILE-NAME found in %PATCH-PATH."
|
||||
(list (search-patch file-name) ...))
|
@ -5,6 +5,7 @@
|
||||
(define-module (rosenthal packages binaries)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix deprecation)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix build-system copy)
|
||||
@ -17,61 +18,14 @@
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages glib)
|
||||
#:use-module (gnu packages java)
|
||||
#:use-module (gnu packages nss))
|
||||
#:use-module (gnu packages nss)
|
||||
#:use-module (rosenthal packages rust-apps))
|
||||
|
||||
(define license
|
||||
(@@ (guix licenses) license))
|
||||
|
||||
(define-public atuin-bin
|
||||
(package
|
||||
(name "atuin-bin")
|
||||
(version "18.4.0")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://github.com/atuinsh/atuin/releases/download/v"
|
||||
version "/atuin-x86_64-unknown-linux-gnu.tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"09rbk68mlfvjqzpydq9i83c05vpvn03s2343mswimc5svlclwslh"))))
|
||||
(build-system copy-build-system)
|
||||
(arguments
|
||||
(list #:install-plan #~'(("atuin" "bin/"))
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(add-after 'install 'patch-elf
|
||||
(lambda _
|
||||
(let ((ld.so (string-append #$(this-package-input "glibc")
|
||||
#$(glibc-dynamic-linker)))
|
||||
(runpath (string-join
|
||||
(list
|
||||
(string-append
|
||||
(ungexp
|
||||
(this-package-input "gcc") "lib") "/lib")
|
||||
(string-append
|
||||
#$(this-package-input "glibc") "/lib"))
|
||||
":")))
|
||||
(define (patch-elf file)
|
||||
(format #t "Patching ~a ..." file)
|
||||
(unless (string-contains file ".so")
|
||||
(invoke "patchelf" "--set-interpreter" ld.so file))
|
||||
(invoke "patchelf" "--set-rpath" runpath file)
|
||||
(display " done\n"))
|
||||
(for-each (lambda (file)
|
||||
(patch-elf file))
|
||||
(find-files
|
||||
(string-append #$output "/bin")))))))))
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(native-inputs (list patchelf-0.16))
|
||||
(inputs (list `(,gcc "lib") glibc))
|
||||
(home-page "https://atuin.sh/")
|
||||
(synopsis "Sync, search and backup shell history")
|
||||
(description
|
||||
"Atuin replaces existing shell history with a SQLite database, and records
|
||||
additional context for commands. Additionally, it provides optional and fully
|
||||
encrypted synchronisation of history between machines, via an Atuin server.")
|
||||
(license license:gpl3)
|
||||
(properties '((upstream-name . "atuin")))))
|
||||
(deprecated-package "atuin-bin" atuin))
|
||||
|
||||
(define bitwarden
|
||||
(package
|
||||
|
64
rosenthal/packages/patches/atuin-disable-failing-tests.patch
Normal file
64
rosenthal/packages/patches/atuin-disable-failing-tests.patch
Normal file
@ -0,0 +1,64 @@
|
||||
diff --git a/crates/atuin-dotfiles/src/store.rs b/crates/atuin-dotfiles/src/store.rs
|
||||
index b77fa370..0449ad0b 100644
|
||||
--- a/crates/atuin-dotfiles/src/store.rs
|
||||
+++ b/crates/atuin-dotfiles/src/store.rs
|
||||
@@ -335,6 +335,7 @@ mod tests {
|
||||
assert_eq!(decoded, record);
|
||||
}
|
||||
|
||||
+ #[ignore]
|
||||
#[tokio::test]
|
||||
async fn build_aliases() {
|
||||
let store = SqliteStore::new(":memory:", test_local_timeout())
|
||||
diff --git a/crates/atuin-dotfiles/src/store/var.rs b/crates/atuin-dotfiles/src/store/var.rs
|
||||
index 0873b4d5..b2e68e34 100644
|
||||
--- a/crates/atuin-dotfiles/src/store/var.rs
|
||||
+++ b/crates/atuin-dotfiles/src/store/var.rs
|
||||
@@ -317,6 +317,7 @@ mod tests {
|
||||
assert_eq!(decoded, record);
|
||||
}
|
||||
|
||||
+ #[ignore]
|
||||
#[tokio::test]
|
||||
async fn build_vars() {
|
||||
let store = SqliteStore::new(":memory:", test_local_timeout())
|
||||
diff --git a/crates/atuin/tests/sync.rs b/crates/atuin/tests/sync.rs
|
||||
index 7e25d1c2..e16d5b96 100644
|
||||
--- a/crates/atuin/tests/sync.rs
|
||||
+++ b/crates/atuin/tests/sync.rs
|
||||
@@ -3,6 +3,7 @@ use time::OffsetDateTime;
|
||||
|
||||
mod common;
|
||||
|
||||
+#[ignore]
|
||||
#[tokio::test]
|
||||
async fn sync() {
|
||||
let path = format!("/{}", uuid_v7().as_simple());
|
||||
diff --git a/crates/atuin/tests/users.rs b/crates/atuin/tests/users.rs
|
||||
index 95fb533b..f4154803 100644
|
||||
--- a/crates/atuin/tests/users.rs
|
||||
+++ b/crates/atuin/tests/users.rs
|
||||
@@ -2,6 +2,7 @@ use atuin_common::utils::uuid_v7;
|
||||
|
||||
mod common;
|
||||
|
||||
+#[ignore]
|
||||
#[tokio::test]
|
||||
async fn registration() {
|
||||
let path = format!("/{}", uuid_v7().as_simple());
|
||||
@@ -30,6 +31,7 @@ async fn registration() {
|
||||
server.await.unwrap();
|
||||
}
|
||||
|
||||
+#[ignore]
|
||||
#[tokio::test]
|
||||
async fn change_password() {
|
||||
let path = format!("/{}", uuid_v7().as_simple());
|
||||
@@ -68,6 +70,7 @@ async fn change_password() {
|
||||
server.await.unwrap();
|
||||
}
|
||||
|
||||
+#[ignore]
|
||||
#[tokio::test]
|
||||
async fn multi_user_test() {
|
||||
let path = format!("/{}", uuid_v7().as_simple());
|
58
rosenthal/packages/rust-apps.scm
Normal file
58
rosenthal/packages/rust-apps.scm
Normal file
@ -0,0 +1,58 @@
|
||||
;; SPDX-FileCopyrightText: 2025 Hilton Chain <hako@ultrarare.space>
|
||||
;;
|
||||
;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
(define-module (rosenthal packages rust-apps)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix packages)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix git-download)
|
||||
#:use-module (guix build-system cargo)
|
||||
#:use-module (rosenthal packages rust-crates))
|
||||
|
||||
(define-public atuin
|
||||
(package
|
||||
(name "atuin")
|
||||
(version "18.4.0")
|
||||
(source (origin
|
||||
(method git-fetch)
|
||||
(uri (git-reference
|
||||
(url "https://github.com/atuinsh/atuin")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"1zi7ar999ycvig9c9crylab540xdgr0h6v99q9j8ypk9i1fviyiz"))
|
||||
(patches
|
||||
(rosenthal-patches "atuin-disable-failing-tests.patch"))))
|
||||
(build-system cargo-build-system)
|
||||
(arguments
|
||||
(list
|
||||
#:install-source? #f
|
||||
#:tests? #f ;TODO
|
||||
#:features
|
||||
''("client" "sync" "server" "clipboard" "daemon")
|
||||
#:phases
|
||||
#~(modify-phases %standard-phases
|
||||
(replace 'install
|
||||
(lambda* (#:key outputs features #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(registry (string-append out "/share/cargo/registry"))
|
||||
(sources (string-append out "/share/cargo/src")))
|
||||
(mkdir-p out)
|
||||
;; Make cargo reuse all the artifacts we just built instead
|
||||
;; of defaulting to making a new temp directory
|
||||
(setenv "CARGO_TARGET_DIR" "./target")
|
||||
;; Only install crates which include binary targets,
|
||||
;; otherwise cargo will raise an error.
|
||||
(invoke "cargo" "install" "--no-track" "--path" "crates/atuin"
|
||||
"--root" out "--features" (string-join features))))))))
|
||||
(inputs (force atuin-cargo-inputs))
|
||||
(home-page "https://atuin.sh/")
|
||||
(synopsis "Sync, search and backup shell history")
|
||||
(description
|
||||
"Atuin replaces existing shell history with a SQLite database, and records
|
||||
additional context for commands. Additionally, it provides optional and fully
|
||||
encrypted synchronisation of history between machines, via an Atuin server.")
|
||||
(license license:gpl3)))
|
4930
rosenthal/packages/rust-crates.scm
Normal file
4930
rosenthal/packages/rust-crates.scm
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user