diff options
Diffstat (limited to 'packages/ferretdb.scm')
| -rw-r--r-- | packages/ferretdb.scm | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/packages/ferretdb.scm b/packages/ferretdb.scm new file mode 100644 index 0000000..1d1718c --- /dev/null +++ b/packages/ferretdb.scm @@ -0,0 +1,198 @@ +(use-modules (gnu packages golang) + (gnu packages golang-build) + (gnu packages golang-check) + (gnu packages golang-compression) + (gnu packages golang-crypto) + (gnu packages golang-web) + (gnu packages golang-xyz) + (gnu packages prometheus) + (guix build-system go) + (guix git-download) + (guix gexp) + ((guix licenses) #:prefix license:) + (guix packages) + (guix utils)) + +(define-public go-github-com-aleksi-pointer + (package + (name "go-github-com-aleksi-pointer") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/AlekSi/pointer") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0rncmanv62wwy7ihvjhvb695mkvy4kdzhgnn90zygs9yrfzzk0wk")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/AlekSi/pointer")) + (home-page "https://github.com/AlekSi/pointer") + (synopsis "pointer") + (description + "Package pointer provides helpers to convert between pointers and values of +built-in (and, with generics, of any) types.") + (license license:expat))) + +(define-public go-go-mongodb-org-mongo-driver + (package + (name "go-go-mongodb-org-mongo-driver") + (version "1.17.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mongodb/mongo-go-driver") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0n1vxs3dcjcrj3lmhw8jvqnwqnbj82jxqcb1l74ga1r8vp2qqrcb")))) + (build-system go-build-system) + (arguments + (list + #:import-path "go.mongodb.org/mongo-driver" + #:skip-build? #t + #:tests? #f)) ;; Some tests require network access. + (propagated-inputs (list go-golang-org-x-sync + go-golang-org-x-crypto + go-github-com-youmark-pkcs8 + go-github-com-xdg-go-stringprep + go-github-com-xdg-go-scram + go-github-com-klauspost-compress + go-github-com-google-go-cmp + go-github-com-golang-snappy + go-github-com-davecgh-go-spew)) + (home-page "https://go.mongodb.org/mongo-driver") + (synopsis "MongoDB Go Driver") + (description "The @code{MongoDB} supported driver for Go.") + (license license:asl2.0))) + +(define-public go-go-mongodb-org-mongo-driver-2 + (let ((base go-go-mongodb-org-mongo-driver)) + (package + (inherit base) + (name "go-go-mongodb-org-mongo-driver-2") + (version "2.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/mongodb/mongo-go-driver") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0x1v8p6wkviqabiqzdrydd1n520h77b29yvm779r82gmj593zxa9")))) + (arguments + (substitute-keyword-arguments (package-arguments base) + ((#:import-path import-path) "go.mongodb.org/mongo-driver/v2"))) + (propagated-inputs `(("go-github-com-golang-snappy" + ,go-github-com-golang-snappy) + . ,(package-propagated-inputs base))) + (synopsis "MongoDB Go Driver, version 2")))) + +(define-public go-github-com-ferretdb-wire + (package + (name "go-github-com-ferretdb-wire") + (version "0.0.8") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/FerretDB/wire") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "19klzbdjhhkdxslnx8ls3i7n421z4ihra4zigrv52bdv90l4xmdf")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/FerretDB/wire" + #:tests? #f)) ;; Some tests require network access. + (propagated-inputs (list go-github-com-xdg-go-scram + go-github-com-stretchr-testify)) + (home-page "https://github.com/FerretDB/wire") + (synopsis "wire") + (description + "Package wire provides +@@url{https://www.mongodb.com/docs/manual/reference/mongodb-wire-protocol/,@code{MongoDB} +wire protocol} implementation.") + (license license:asl2.0))) + +(define-public go-ferretdb + (package + (name "go-github-com-ferretdb-ferretdb") + (version "1.24.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/FerretDB/FerretDB") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1436ba27asaw2c35nklgar6b2zas1clgsm8fz8a6c8wcy901qnxg")))) + (build-system go-build-system) + (arguments + (list + #:unpack-path "github.com/FerretDB/FerretDB" + #:import-path "github.com/FerretDB/FerretDB/cmd/ferretdb" + #:install-source? #f + #:tests? #f ;; Tests expect .git. + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'do-not-use-fallback-x509roots + (lambda* (#:key unpack-path #:allow-other-keys) + (substitute* (map (lambda (subpath) + (format #f "src/~a/~a" unpack-path subpath)) + '("go.mod" "cmd/ferretdb/main.go")) + ((".*x509roots/fallback.*" line) + (format #f "//~a" line))))) + (add-after 'unpack 'do-not-use-statsviz + (lambda* (#:key unpack-path #:allow-other-keys) + (substitute* (map (lambda (subpath) + (format #f "src/~a/~a" unpack-path subpath)) + '("go.mod" + "integration/go.mod" + "internal/util/debug/debug.go")) + ((".*arl/statsviz.*" line) + (format #f "//~a" line))) + (substitute* (format #f "src/~a/~a" unpack-path + "internal/util/debug/debug.go") + ((".*svOpts := .*" line) + (format #f "/*~a" line)) + ((".*statsviz.Register.*" line) + (format #f "~a*/" line)))))))) + (native-inputs (list go-modernc-org-sqlite + go-golang-org-x-sys + go-golang-org-x-exp + go-go-uber-org-automaxprocs + go-go-opentelemetry-io-otel-trace + go-go-opentelemetry-io-otel-sdk + go-go-opentelemetry-io-otel-exporters-otlp-otlptrace + go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp + go-go-opentelemetry-io-otel + go-go-mongodb-org-mongo-driver + go-github-com-prometheus-common + go-github-com-prometheus-client-model + go-github-com-prometheus-client-golang + go-github-com-jackc-pgx-v5 + go-github-com-jackc-pgerrcode + go-github-com-google-uuid + go-github-com-go-sql-driver-mysql + go-github-com-alecthomas-kong + go-github-com-sap-go-hdb + go-github-com-ferretdb-wire + go-github-com-aleksi-pointer)) + (home-page "https://github.com/FerretDB/FerretDB") + (synopsis "FerretDB") + (description + "@code{FerretDB} was founded to become the de-facto open-source substitute to +@code{MongoDB}. @code{FerretDB} is an open-source proxy, converting the +@code{MongoDB} 5.0+ wire protocol queries to SQL - using @code{PostgreSQL} or +SQLite as a database engine.") + (license license:asl2.0))) + +go-ferretdb |
