-
Notifications
You must be signed in to change notification settings - Fork 7
/
manifest.scm
117 lines (101 loc) · 3.08 KB
/
manifest.scm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
;; What follows is a "manifest" equivalent to the command line you gave.
;; You can store it in a file that you may then pass to any 'guix' command
;; that accepts a '--manifest' (or '-m') option.
;; This file was initially created by
;; guix shell PACKAGES --export-manifest
(use-modules
(guix profiles)
;; fun fact: multiple modules can be addressed by a single prefix
;; ((bost gnu packages babashka) #:prefix bst:)
;; ((bost gnu packages clojure) #:prefix bst:)
)
(use-package-modules
admin
base
bash
certs
curl
databases
guile
java
less
linux
ncurses
node
python
rsync
rust-apps
shells
shellutils
ssh
version-control
)
(define (partial fun . args)
(lambda x (apply fun (append args x))))
(define project-manifest
(specifications->manifest
(list
;; `guix shell openjdk@<version>:jdk PACKAGES --export-manifest' ignores the
;; '@<version>' if it matches the installed version. (The '@18' was added
;; manually.)
;; openjdk package removes javadoc libs, one has to use ONLY openjdk:jdk
;; https://github.com/clojure-emacs/orchard/issues/117#issuecomment-859987280
;; "openjdk@18:jdk"
)))
((compose
concatenate-manifests
(partial list project-manifest)
manifest
;; openjdk package removes javadoc libs, one has to use ONLY openjdk:jdk
;; https://github.com/clojure-emacs/orchard/issues/117#issuecomment-859987280
(partial append (list (package->manifest-entry openjdk18 "jdk")))
(partial map package->manifest-entry))
(list
;; ./heroku.clj needs babashka. Also `guix shell ...` contain
;; '--share=/usr/bin' so that shebang (aka hashbang) #!/bin/env/bb works
(@(nongnu packages clojure) babashka)
bash
;; 1. The `ls' from busybox is causing problems. However it is overshadowed
;; when this list is reversed. (Using Guile or even on the command line.)
;;
;; 2. It seems like busybox is not needed if invoked with:
;; guix shell ... --share=/usr/bin
#;busybox
;; CLI tools to start a Clojure repl, use Clojure and Java libraries, and
;; start Clojure programs. See https://clojure.org/releases/tools
;; clojure-tools not clojure must be installed so that clojure binary
;; available on the CLI
(@(gnu packages clojure) clojure-tools)
coreutils
curl
direnv
fish
git
grep
;; specifying only 'guile' leads to "error: guile: unbound variable"
guile-3.0
iproute ; provides ss - socket statistics
less
ncurses
nss-certs
openssh
;; Heroku currently offers Postgres version 14 as the default.
;; https://devcenter.heroku.com/articles/heroku-postgresql#version-support
;; The ./var/log/postgres.log may contain:
;; FATAL: database files are incompatible with server
;; DETAIL: The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.6.
postgresql-13
;; provides: free pgrep pidof pkill pmap ps pwdx slabtoptload top vmstat w
;; watch sysctl
procps
ripgrep
rsync
sed
which
;; #begin# for heroku installation
node-lts
python
gnu-make ;; i.e. `make`
;; #end# for heroku installation
neofetch ;; pimp my ride with logos
))