projects/guix·blob librewolf-updates · refs

353 lines · 12.1 KiB

1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2025 Giacomo Leidi <[email protected]>
3;;;
4;;; This file is part of GNU Guix.
5;;;
6;;; GNU Guix is free software; you can redistribute it and/or modify it
7;;; under the terms of the GNU General Public License as published by
8;;; the Free Software Foundation; either version 3 of the License, or (at
9;;; your option) any later version.
10;;;
11;;; GNU Guix is distributed in the hope that it will be useful, but
12;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14;;; GNU General Public License for more details.
15;;;
16;;; You should have received a copy of the GNU General Public License
17;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19(define-module (gnu packages elixir-databases)
20 #:use-module (gnu packages erlang-xyz)
21 #:use-module (gnu packages elixir-xyz)
22 #:use-module (guix build-system mix)
23 #:use-module (guix download)
24 #:use-module (guix git-download)
25 #:use-module (guix gexp)
26 #:use-module ((guix licenses)
27 #:prefix license:)
28 #:use-module (guix packages))
29
30(define-public elixir-db-connection
31 (package
32 (name "elixir-db-connection")
33 (version "2.8.1")
34 (source
35 (origin
36 (method url-fetch)
37 (uri (hexpm-uri "db_connection" version))
38 (sha256
39 (base32 "1zd8kp85wh7bbzr5x4kc75l53r5q9xwrhfz04vrpd793kd43s6m6"))))
40 (build-system mix-build-system)
41 (arguments
42 (list
43 ;; Tests require a db process
44 #:tests? #f
45 #:build-per-environment #f))
46 (propagated-inputs (list erlang-telemetry))
47 (synopsis
48 "Database connection behaviour")
49 (description
50 "This package provides @code{elixir-db-connection}, a library implementing
51database connection behaviour and database connection pool. It is designed for
52handling transaction, prepare/execute, cursors and client process
53describe/encode/decode.")
54 (home-page "https://hexdocs.pm/db_connection/")
55 (license license:asl2.0)))
56
57(define-public elixir-ecto-dev-logger
58 (package
59 (name "elixir-ecto-dev-logger")
60 (version "0.15.0")
61 (source
62 (origin
63 (method url-fetch)
64 (uri (hexpm-uri "ecto_dev_logger" version))
65 (sha256
66 (base32 "12p82z8m6n2ibzbghhfv7cckncv2jb05360ki3rgr94rspbhgj5j"))))
67 (build-system mix-build-system)
68 (native-inputs (list elixir-ecto-sql elixir-geo-postgis))
69 (propagated-inputs (list elixir-ecto elixir-geo elixir-jason))
70 (synopsis "Alternative Ecto logger for development")
71 (description "This package provides an alternative Ecto logger for
72development.")
73 (home-page "https://hexdocs.pm/ecto_dev_logger/")
74 (license license:asl2.0)))
75
76(define-public elixir-ecto-sql
77 (package
78 (name "elixir-ecto-sql")
79 (version "3.13.2")
80 (source
81 (origin
82 (method git-fetch)
83 (uri (git-reference
84 (url "https://github.com/elixir-ecto/ecto_sql.git")
85 (commit (string-append "v" version))))
86 (file-name (git-file-name name version))
87 (sha256
88 (base32 "1i5jhjv8xqwl887kq7jp880ywpp16glllcfd7y7kpb6h6jc62hnd"))))
89 (build-system mix-build-system)
90 (propagated-inputs
91 (list elixir-db-connection
92 elixir-ecto
93 elixir-myxql
94 elixir-postgrex
95 elixir-tds))
96 (synopsis "SQL-based adapters for Ecto and database migrations")
97 (description "@code{Ecto SQL} provides building blocks for writing SQL
98adapters for Ecto. It features:
99
100@itemize
101@item The @code{Ecto.Adapters.SQL} module as an entry point for all SQL-based
102adapters
103@item Default implementations for Postgres (@code{Ecto.Adapters.Postgres}),
104MySQL (@code{Ecto.Adapters.MyXQL}), and MSSQL (@code{Ecto.Adapters.Tds})
105@item A test sandbox (@code{Ecto.Adapters.SQL.Sandbox}) that concurrently runs
106database tests inside transactions
107@item Support for database migrations via Mix tasks
108@end itemize")
109 (home-page "https://hexdocs.pm/ecto_sql/")
110 (license license:asl2.0)))
111
112(define-public elixir-ecto
113 (package
114 (name "elixir-ecto")
115 (version "3.13.3")
116 (source
117 (origin
118 (method url-fetch)
119 (uri (hexpm-uri "ecto" version))
120 (sha256
121 (base32 "155gk6ik454a0pc9mxjml2l8r6jr8rwvmdi5zx1qia2kixvdn9qr"))))
122 (build-system mix-build-system)
123 (propagated-inputs (list elixir-decimal elixir-jason erlang-telemetry))
124 (synopsis
125 "Toolkit for data mapping and language integrated query for Elixir")
126 (description
127 "This package provides a toolkit for data mapping and language integrated query
128for Elixir.")
129 (home-page "https://hexdocs.pm/ecto/")
130 (license license:asl2.0)))
131
132(define-public elixir-ex-machina
133 (package
134 (name "elixir-ex-machina")
135 (version "2.8.0")
136 (source
137 (origin
138 (method url-fetch)
139 (uri (hexpm-uri "ex_machina" version))
140 (sha256
141 (base32 "0abpg9i08w0iglc0qcl5b3g91jw22s3mvyn4nvxc3hf0cjf1mzkr"))))
142 (build-system mix-build-system)
143 (native-inputs (list elixir-excoveralls))
144 (propagated-inputs (list elixir-ecto elixir-ecto-sql))
145 (synopsis
146 "Factory library")
147 (description
148 "This package provides a factory library by the creators of @code{FactoryBot}
149(@code{FactoryGirl}).")
150 (home-page "https://hexdocs.pm/ex_machina/")
151 (license license:expat)))
152
153(define-public elixir-exto
154 (package
155 (name "elixir-exto")
156 (version "0.4.0")
157 (source
158 (origin
159 (method url-fetch)
160 (uri (hexpm-uri "exto" version))
161 (sha256
162 (base32 "1mkzxj37dqb966fhqg528wrlfx9ifgxis87np4fqc30rqabgsyj4"))))
163 (build-system mix-build-system)
164 (propagated-inputs (list elixir-accessible elixir-ecto))
165 (native-inputs
166 (list elixir-decimal))
167 (synopsis "Extend ecto schema definitions in config")
168 (description "@code{Exto} is an Elixir library providing
169configuration-driven @code{Ecto} schema extensibility.")
170 (home-page "https://hexdocs.pm/exto/")
171 (license license:asl2.0)))
172
173(define-public elixir-geo-postgis
174 (package
175 (name "elixir-geo-postgis")
176 (version "3.7.1")
177 (source
178 (origin
179 (method url-fetch)
180 (uri (hexpm-uri "geo_postgis" version))
181 (sha256
182 (base32 "102j81g58wb8skdpa5vggp2kcwdva8qf0nyxkpzbfd8dc0y843f2"))))
183 (build-system mix-build-system)
184 (propagated-inputs (list elixir-ecto elixir-geo elixir-jason elixir-poison
185 elixir-postgrex))
186 (synopsis "PostGIS extension for Postgrex.")
187 (description "@code{PostGIS} extension for Postgrex.")
188 (home-page "https://hexdocs.pm/geo_postgis/")
189 (license license:expat)))
190
191(define-public elixir-myxql
192 (package
193 (name "elixir-myxql")
194 (version "0.8.0")
195 (source
196 (origin
197 (method url-fetch)
198 (uri (hexpm-uri "myxql" version))
199 (sha256
200 (base32 "0x6p8hn2lx7lplim4w10l1vq2d7rwkqg972ias3hzkdkdyrcxh0y"))))
201 (build-system mix-build-system)
202 (native-inputs
203 (list erlang-binpp))
204 (propagated-inputs (list elixir-db-connection elixir-decimal elixir-geo elixir-jason
205 elixir-table))
206 (synopsis "MySQL 5.5+ driver for Elixir")
207 (description "This library provides a @code{MySQL} 5.5+ driver for Elixir.")
208 (home-page "https://hexdocs.pm/myxql/")
209 (license license:asl2.0)))
210
211(define-public elixir-needle-ulid
212 (package
213 (name "elixir-needle-ulid")
214 (version "0.3.0")
215 (source
216 (origin
217 (method url-fetch)
218 (uri (hexpm-uri "needle_ulid" version))
219 (sha256
220 (base32 "14ryrgsabj08v1a0wyad21aizyy8kcr0n1l1z6ks6fvv4v2hskfm"))))
221 (build-system mix-build-system)
222 (propagated-inputs (list elixir-ecto elixir-ecto-sql elixir-ex-ulid))
223 (synopsis
224 "Provides an ULID datatype for @code{Ecto} and related helpers")
225 (description
226 "This package provides @code{elixir-needle-ulid}, a library implementing an
227ULID datatype for @code{Ecto} (using @code{ex_ulid}) and related helpers.")
228 (home-page "https://hexdocs.pm/needle_ulid/")
229 (license license:expat)))
230
231(define-public elixir-needle
232 (package
233 (name "elixir-needle")
234 (version "0.8.0")
235 (source
236 (origin
237 (method url-fetch)
238 (uri (hexpm-uri "needle" version))
239 (sha256
240 (base32 "0gf1bniwf650xrczvimmw1drg6cjqz21539nlhqw4la4m91jl7h4"))))
241 (build-system mix-build-system)
242 (propagated-inputs (list elixir-ecto-sql elixir-exto elixir-needle-ulid
243 erlang-telemetry))
244 (synopsis
245 "Universal foreign keys, virtual schemas, and shared data mixins")
246 (description
247 "When using a relational DB (such an @code{Ecto} schema with a Postgres
248table), usually a foreign key field has to be pre-defined with a reference
249pointing to a specific field in a specific table.
250
251Besides regular schemas with universal foreign keys (@code{Pointable}),
252@code{Needle} provides @code{Virtual} for schemas that don’t have any fields on
253their own, and @code{Mixin} for storing common fields that can be re-used by
254multiple @code{Pointable}s or @code{Virtual}s.")
255 (home-page "https://hexdocs.pm/needle/")
256 (license license:asl2.0)))
257
258(define-public elixir-postgrex
259 (package
260 (name "elixir-postgrex")
261 (version "0.19.1")
262 (source
263 (origin
264 (method url-fetch)
265 (uri (hexpm-uri "postgrex" version))
266 (sha256
267 (base32 "1y58v3jsya98462r43mv29wwgf3vv8dz9jn63q4iwf4gl62pib4b"))))
268 (build-system mix-build-system)
269 (propagated-inputs (list elixir-db-connection elixir-decimal elixir-jason
270 elixir-table))
271 (synopsis "PostgreSQL driver for Elixir")
272 (description "This library provides a @code{PostgreSQL} driver for Elixir.")
273 (home-page "https://hexdocs.pm/postgrex/")
274 (license license:asl2.0)))
275
276(define-public elixir-table
277 (package
278 (name "elixir-table")
279 (version "0.1.2")
280 (source
281 (origin
282 (method url-fetch)
283 (uri (hexpm-uri "table" version))
284 (sha256
285 (base32 "0aah0rkq6ikl1w359n65rmhk0p0npwj0fr35grf321pqzrzbr6by"))))
286 (build-system mix-build-system)
287 (synopsis "Unified access to tabular data")
288 (description "This package provides @code{elixir-table}, a library that
289implements unified access to tabular data.")
290 (home-page "https://hexdocs.pm/table/")
291 (license license:asl2.0)))
292
293(define-public elixir-tds
294 (package
295 (name "elixir-tds")
296 (version "2.3.5")
297 (source
298 (origin
299 (method url-fetch)
300 (uri (hexpm-uri "tds" version))
301 (sha256
302 (base32 "1wk20rk1fjh16swlkiyl3fs91lj4w4dk77l5z77vp12mvpsm1qsj"))))
303 (build-system mix-build-system)
304 (propagated-inputs
305 (list elixir-db-connection elixir-decimal elixir-jason
306 elixir-table))
307 (synopsis
308 "Elixir implementation of the MS TDS protocol")
309 (description
310 "This package implements a Microsoft SQL Server client. More generally it
311provides an Elixir implementation of the MS TDS protocol.")
312 (home-page "https://hexdocs.pm/tds/")
313 (license license:asl2.0)))
314
315(define-public elixir-uniq
316 (package
317 (name "elixir-uniq")
318 (version "0.6.1")
319 (source
320 (origin
321 (method url-fetch)
322 (uri (hexpm-uri "uniq" version))
323 (sha256
324 (base32 "05mrzx7g8q5c4jg38pxqcw1x3bysw0i5n4j7d42v6m3hcx6w69k4"))))
325 (build-system mix-build-system)
326 (native-inputs (list elixir-stream-data))
327 (propagated-inputs (list elixir-ecto))
328 (synopsis
329 "Provides UUID generation, parsing, and formatting")
330 (description
331 "This package provides UUID generation, parsing, and formatting. Supports RFC
3324122, and the v6 draft extension.")
333 (home-page "https://hexdocs.pm/uniq/")
334 (license license:asl2.0)))
335
336(define-public elixir-uuidv7
337 (package
338 (name "elixir-uuidv7")
339 (version "1.0.0")
340 (source
341 (origin
342 (method url-fetch)
343 (uri (hexpm-uri "uuidv7" version))
344 (sha256
345 (base32 "1g2c8imkk7pgcvc5ns2v1b0zils3ai1yym4s3a5psvs511qk7k8f"))))
346 (build-system mix-build-system)
347 (propagated-inputs (list elixir-ecto))
348 (synopsis "UUID v7 implementation and @code{Ecto.Type} for Elixir")
349 (description
350 "This package provides a UUID v7 implementation and @code{Ecto.Type}
351for Elixir.")
352 (home-page "https://hexdocs.pm/uuidv7/")
353 (license license:expat)))