mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: Add dicedb.
* gnu/packages/databases.scm (dicedb): New variable. * gnu/packages/patches/dicedb-remove-init-from-config-subpkg.patch: New file. * gnu/local.mk (dist_patch_DATA): Register patch. Change-Id: Id5c97d254c35301181593b42c96a83a1ef843131 Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
a3e0a45b5d
commit
bff04df003
3 changed files with 144 additions and 0 deletions
|
@ -1182,6 +1182,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/dee-vapi.patch \
|
%D%/packages/patches/dee-vapi.patch \
|
||||||
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
|
%D%/packages/patches/dfu-programmer-fix-libusb.patch \
|
||||||
%D%/packages/patches/dhclient-script-resolvconf-support.patch \
|
%D%/packages/patches/dhclient-script-resolvconf-support.patch \
|
||||||
|
%D%/packages/patches/dicedb-remove-init-from-config-subpkg.patch \
|
||||||
%D%/packages/patches/directfb-davinci-glibc-228-compat.patch \
|
%D%/packages/patches/directfb-davinci-glibc-228-compat.patch \
|
||||||
%D%/packages/patches/dkimproxy-add-ipv6-support.patch \
|
%D%/packages/patches/dkimproxy-add-ipv6-support.patch \
|
||||||
%D%/packages/patches/docbook-utils-documentation-edits.patch \
|
%D%/packages/patches/docbook-utils-documentation-edits.patch \
|
||||||
|
|
|
@ -64,6 +64,7 @@
|
||||||
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org>
|
||||||
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
|
;;; Copyright © 2024 Troy Figiel <troy@troyfigiel.com>
|
||||||
;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com>
|
;;; Copyright © 2024 gemmaro <gemmaro.dev@gmail.com>
|
||||||
|
;;; Copyright © 2025 Ashvith Shetty <ashvithshetty0010@zohomail.in>
|
||||||
;;;
|
;;;
|
||||||
;;; This file is part of GNU Guix.
|
;;; This file is part of GNU Guix.
|
||||||
;;;
|
;;;
|
||||||
|
@ -110,8 +111,10 @@
|
||||||
#:use-module (gnu packages glib)
|
#:use-module (gnu packages glib)
|
||||||
#:use-module (gnu packages gnome)
|
#:use-module (gnu packages gnome)
|
||||||
#:use-module (gnu packages gnupg)
|
#:use-module (gnu packages gnupg)
|
||||||
|
#:use-module (gnu packages golang)
|
||||||
#:use-module (gnu packages golang-build)
|
#:use-module (gnu packages golang-build)
|
||||||
#:use-module (gnu packages golang-check)
|
#:use-module (gnu packages golang-check)
|
||||||
|
#:use-module (gnu packages golang-crypto)
|
||||||
#:use-module (gnu packages golang-web)
|
#:use-module (gnu packages golang-web)
|
||||||
#:use-module (gnu packages golang-xyz)
|
#:use-module (gnu packages golang-xyz)
|
||||||
#:use-module (gnu packages gperf)
|
#:use-module (gnu packages gperf)
|
||||||
|
@ -484,6 +487,96 @@ database later.")
|
||||||
license:mpl1.1 ; examples/interfaces/0{6,8}*.cpp
|
license:mpl1.1 ; examples/interfaces/0{6,8}*.cpp
|
||||||
license:public-domain)))) ; including files without explicit licence
|
license:public-domain)))) ; including files without explicit licence
|
||||||
|
|
||||||
|
(define-public dicedb
|
||||||
|
(package
|
||||||
|
(name "dicedb")
|
||||||
|
(version "1.0.3")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/DiceDB/dice")
|
||||||
|
(commit (string-append "v" version))))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(sha256
|
||||||
|
(base32 "19hkr2sqb5vcyrxb17y8586aa9amw2nny2fia7yf2lshigg03va5"))
|
||||||
|
(patches (search-patches "dicedb-remove-init-from-config-subpkg.patch"))))
|
||||||
|
(build-system go-build-system)
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:go go-1.23
|
||||||
|
#:install-source? #f
|
||||||
|
#:import-path "github.com/dicedb/dice"
|
||||||
|
#:build-flags
|
||||||
|
#~(list (format #f "-ldflags=-X config.DiceDBVersion=v~a"
|
||||||
|
#$version))
|
||||||
|
#:test-subdirs
|
||||||
|
#~(list "internal/auth/..."
|
||||||
|
;; "internal/clientio/..." ; matched no packages
|
||||||
|
"internal/cmd/..."
|
||||||
|
"internal/comm/..."
|
||||||
|
"internal/common/..."
|
||||||
|
"internal/dencoding/..."
|
||||||
|
"internal/errors/..."
|
||||||
|
;; "internal/eval/..." ; build failed
|
||||||
|
"internal/id/..."
|
||||||
|
"internal/iomultiplexer/..."
|
||||||
|
"internal/logger/..."
|
||||||
|
"internal/object/..."
|
||||||
|
"internal/observability/..."
|
||||||
|
"internal/ops/..."
|
||||||
|
"internal/querymanager/..."
|
||||||
|
"internal/regex/..."
|
||||||
|
"internal/server/..."
|
||||||
|
"internal/shard/..."
|
||||||
|
;; "internal/sql/..." ; matched no packages
|
||||||
|
;; "internal/store/..." ; build failed
|
||||||
|
"internal/wal/..."
|
||||||
|
"internal/watchmanager/..."
|
||||||
|
;; "internal/worker/..." ; matched no packages
|
||||||
|
)
|
||||||
|
#:test-flags
|
||||||
|
#~(list "-skip"
|
||||||
|
(string-join (list "TestSessionIsActive" "TestSessionActivate"
|
||||||
|
"TestSessionValidate" "TestDEL") "|"))
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'remove-example
|
||||||
|
(lambda* (#:key tests? import-path #:allow-other-keys)
|
||||||
|
(with-directory-excursion (string-append "src/" import-path)
|
||||||
|
(delete-file-recursively "examples")))))))
|
||||||
|
(propagated-inputs (list go-google-golang-org-protobuf
|
||||||
|
go-golang-org-x-crypto
|
||||||
|
go-github-com-twmb-murmur3
|
||||||
|
go-github-com-stretchr-testify
|
||||||
|
go-github-com-spf13-viper
|
||||||
|
go-github-com-spf13-pflag
|
||||||
|
go-github-com-spf13-cobra
|
||||||
|
go-github-com-rs-zerolog
|
||||||
|
go-github-com-rs-xid
|
||||||
|
go-github-com-ohler55-ojg
|
||||||
|
go-github-com-mmcloughlin-geohash
|
||||||
|
go-github-com-google-uuid
|
||||||
|
go-github-com-google-go-cmp
|
||||||
|
go-github-com-google-btree
|
||||||
|
go-github-com-gobwas-glob
|
||||||
|
go-github-com-dicedb-dicedb-go
|
||||||
|
go-github-com-dgryski-go-farm
|
||||||
|
go-github-com-cespare-xxhash-v2
|
||||||
|
go-github-com-bytedance-sonic
|
||||||
|
go-github-com-axiomhq-hyperloglog
|
||||||
|
go-gotest-tools-v3))
|
||||||
|
(home-page "https://github.com/dicedb/dice")
|
||||||
|
(synopsis
|
||||||
|
"Fast, reactive, in-memory database optimized for modern hardware")
|
||||||
|
(description
|
||||||
|
"@code{dicedb} is a fast, reactive, in-memory database optimized
|
||||||
|
for modern hardware. Commonly used as a cache, it offers a familiar interface
|
||||||
|
while enabling real-time data updates through query subscriptions. It delivers
|
||||||
|
higher throughput and lower median latencies, making it ideal for modern
|
||||||
|
workloads.")
|
||||||
|
(license license:bsd-3)))
|
||||||
|
|
||||||
(define-public leveldb
|
(define-public leveldb
|
||||||
(package
|
(package
|
||||||
(name "leveldb")
|
(name "leveldb")
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
If built locally, dicedb works for as long as the build cache in the tmp
|
||||||
|
directory exists - it looks for a file called VERSION in the project root.
|
||||||
|
Once cleared, or in the case of downloading from substitute server, the
|
||||||
|
location of the VERSION file is invalid. Removing this code and instead
|
||||||
|
providing them through the flag resolves this issue.
|
||||||
|
|
||||||
|
diff --git a/config/config.go b/config/config.go
|
||||||
|
index b358813..c408096 100644
|
||||||
|
--- a/config/config.go
|
||||||
|
+++ b/config/config.go
|
||||||
|
@@ -9,8 +9,6 @@ import (
|
||||||
|
"os"
|
||||||
|
"path/filepath"
|
||||||
|
"reflect"
|
||||||
|
- "runtime"
|
||||||
|
- "strings"
|
||||||
|
|
||||||
|
"github.com/spf13/pflag"
|
||||||
|
"github.com/spf13/viper"
|
||||||
|
@@ -20,30 +18,6 @@ var (
|
||||||
|
DiceDBVersion = "-"
|
||||||
|
)
|
||||||
|
|
||||||
|
-// init initializes the DiceDBVersion variable by reading the
|
||||||
|
-// VERSION file from the project root.
|
||||||
|
-// This function runs automatically when the package is imported.
|
||||||
|
-func init() {
|
||||||
|
- // Get the absolute path of the current file (config.go)
|
||||||
|
- // using runtime reflection
|
||||||
|
- _, currentFile, _, _ := runtime.Caller(0) //nolint:dogsled
|
||||||
|
-
|
||||||
|
- // Navigate up two directories from config.go to reach the project root
|
||||||
|
- // (config.go is in the config/ directory, so we need to go up twice)
|
||||||
|
- projectRoot := filepath.Dir(filepath.Dir(currentFile))
|
||||||
|
-
|
||||||
|
- // Read the VERSION file from the project root
|
||||||
|
- // This approach works regardless of where the program is executed from
|
||||||
|
- version, err := os.ReadFile(filepath.Join(projectRoot, "VERSION"))
|
||||||
|
- if err != nil {
|
||||||
|
- slog.Error("could not read the version file", slog.String("error", err.Error()))
|
||||||
|
- os.Exit(1)
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- // Store the version string in the package-level DiceDBVersion variable
|
||||||
|
- DiceDBVersion = strings.TrimSpace(string(version))
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
var Config *DiceDBConfig
|
||||||
|
|
||||||
|
type DiceDBConfig struct {
|
Loading…
Add table
Add a link
Reference in a new issue