summaryrefslogtreecommitdiffstats
path: root/projects.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-04-14 23:17:37 +0200
committerLudovic Courtès <ludo@gnu.org>2021-04-14 23:39:24 +0200
commit09e3c8bff91e9af7dbce3ecc7e585e1df7c0c0ae (patch)
tree57dc825895961255b3c76fb1aba9cd2ba67fbf86 /projects.scm
parentsoftware: Guarantee person pointer identity (!). (diff)
Add /people.
* projects.scm: New file, with code formerly... * software.sxml: ... here. Include it. * people.sxml: New file. * haunt.scm (static-pages): Add it. * posts/kickoff.md, index.md: Refer to it.
Diffstat (limited to 'projects.scm')
-rw-r--r--projects.scm224
1 files changed, 224 insertions, 0 deletions
diff --git a/projects.scm b/projects.scm
new file mode 100644
index 0000000..9551582
--- /dev/null
+++ b/projects.scm
@@ -0,0 +1,224 @@
1(use-modules (ice-9 match)
2 (srfi srfi-9)
3 (srfi srfi-69)
4 (haunt utils))
5
6(define-record-type <project>
7 (project id name url logo members)
8 project?
9 (id project-id)
10 (name project-name)
11 (url project-url)
12 (logo project-logo)
13 (members project-members set-project-members!))
14
15(define-record-type <person>
16 (make-person name url avatar)
17 person?
18 (name person-name)
19 (url person-url)
20 (avatar person-avatar))
21
22(define* (person name #:optional url avatar)
23 (make-person name url avatar))
24
25(define %projects
26 (let ((table (make-hash-table))
27 (placeholder-logo "/static/images/logos/placeholder.svg"))
28 (for-each
29 (match-lambda
30 ((id name url logo)
31 (hash-table-set! table id
32 (project id name url logo (list))))
33 ((id name url)
34 (hash-table-set! table id
35 (project id name url placeholder-logo (list)))))
36 '((8sync
37 "8sync"
38 "https://www.gnu.org/software/8sync/"
39 "/static/images/logos/8sync.png")
40 (adns
41 "GNU adns"
42 "https://www.gnu.org/software/adns/")
43 (archimedes
44 "GNU Archimedes"
45 "https://www.gnu.org/software/archimedes/")
46 (binutils
47 "binutils"
48 "https://www.gnu.org/software/binutils/")
49 (classpath
50 "GNU Classpath"
51 "https://www.gnu.org/software/classpath/")
52 (dominion
53 "GNU Dominion"
54 "https://savannah.gnu.org/projects/dominion")
55 (gcc
56 "GNU Compiler Collection (GCC)"
57 "https://gcc.gnu.org"
58 "/static/images/logos/gcc.png")
59 (gdb
60 "GDB"
61 "https://www.gnu.org/software/gdb/"
62 "/static/images/logos/gdb.svg")
63 (glibc
64 "GNU C Library"
65 "https://www.gnu.org/software/libc/"
66 "/static/images/logos/glibc.jpg")
67 (gneural
68 "GNU Gneural Network"
69 "https://www.gnu.org/software/gneuralnetwork/"
70 "/static/images/logos/gneural_network.png")
71 (gnucobol
72 "GnuCOBOL"
73 "https://gnucobol.sourceforge.io/"
74 "/static/images/logos/gnucobol.png")
75 (gnupg
76 "GnuPG"
77 "https://gnupg.org"
78 "/static/images/logos/gnupg.png")
79 (gsl
80 "GNU Scientific Library"
81 "https://www.gnu.org/software/gsl/")
82 (guile
83 "GNU Guile"
84 "https://www.gnu.org/software/guile/"
85 "/static/images/logos/guile.svg")
86 (guile-debbugs
87 "Guile-Debbugs"
88 "https://savannah.gnu.org/projects/guile-debbugs/"
89 "/static/images/logos/guile.svg")
90 (guile-gnome
91 "Guile-GNOME"
92 "https://www.gnu.org/software/guile-gnome/"
93 "/static/images/logos/guile.svg")
94 (guile-opengl
95 "Guile-OpenGL"
96 "https://www.gnu.org/software/guile-opengl/"
97 "/static/images/logos/guile.svg")
98 (guile-rpc
99 "GNU Guile-RPC"
100 "https://www.gnu.org/software/guile-rpc/"
101 "/static/images/logos/guile.svg")
102 (guix
103 "GNU Guix"
104 "https://guix.gnu.org"
105 "/static/images/logos/guix.png")
106 (gwl
107 "Guix Workflow Language"
108 "https://guixwl.org"
109 "/static/images/logos/gwl.png")
110 (hurd
111 "GNU Hurd"
112 "https://hurd.gnu.org"
113 "/static/images/logos/hurd.png")
114 (indent
115 "GNU indent"
116 "https://www.gnu.org/software/indent/")
117 (libgcrypt
118 "GNU Libgcrypt"
119 "https://gnupg.org/related_software/libgcrypt/"
120 "/static/images/logos/gnupg.png")
121 (libtasn1
122 "GNU Libtasn1"
123 "https://www.gnu.org/software/libtasn1/")
124 (lilypond
125 "GNU LilyPond"
126 "https://lilypond.org/"
127 "/static/images/logos/lilypond.png")
128 (liquid-war-6
129 "Liquid War 6"
130 "https://www.gnu.org/software/liquidwar6/")
131 (mcsim
132 "GNU MCSim"
133 "https://www.gnu.org/software/mcsim/"
134 "/static/images/logos/mcsim.png")
135 (mediagoblin
136 "GNU MediaGoblin"
137 "https://mediagoblin.org/"
138 "/static/images/logos/mediagoblin.svg")
139 (mes
140 "GNU Mes"
141 "https://www.gnu.org/software/mes/")
142 (mpc
143 "GNU MPC"
144 "http://www.multiprecision.org/mpc/")
145 (nano-archimedes
146 "GNU Nano-Archimedes"
147 "https://www.gnu.org/software/archimedes/")
148 (shepherd
149 "GNU Shepherd"
150 "https://www.gnu.org/software/shepherd/")
151 (source-highlight
152 "GNU Source Highlight"
153 "https://www.gnu.org/software/src-highlite/")
154 (userv
155 "GNU userv"
156 "https://www.gnu.org/software/userv/")))
157 table))
158
159(define-syntax-rule (define-member person projects ...)
160 (let ((p person))
161 (for-each (lambda (project-id)
162 (let ((project
163 (hash-table-ref %projects project-id
164 (lambda ()
165 (error (format #false
166 "Unknown project ~a for ~a~%"
167 project-id name))))))
168 (set-project-members!
169 project (cons p (project-members project)))))
170 (quote (projects ...)))))
171
172(define-member (person "Carlos O'Donell")
173 glibc gcc)
174(define-member (person "Mark J. Wielaard"
175 "https://gnu.wildebeest.org/blog/mjw/")
176 classpath gcc glibc)
177(define-member (person "Andy Wingo"
178 "https://wingolog.org")
179 guile guile-gnome guile-opengl)
180(define-member (person "Ludovic Courtès"
181 "https://people.bordeaux.inria.fr/lcourtes/")
182 guix guile shepherd guile-rpc)
183(define-member (person "Frederic Y. Bois")
184 mcsim)
185(define-member (person "Andrej Shadura")
186 indent)
187(define-member (person "Werner Koch")
188 gnupg libgcrypt)
189(define-member (person "Mark Galassi")
190 gsl dominion)
191(define-member (person "Jean Michel Sellier")
192 archimedes nano-archimedes gneural)
193(define-member (person "Christopher Webber"
194 "https://dustycloud.org")
195 8sync mediagoblin)
196(define-member (person "Ian Jackson")
197 adns userv)
198(define-member (person "Samuel Thibault")
199 hurd)
200(define-member (person "Jan Nieuwenhuizen")
201 mes lilypond)
202(define-member (person "Christian Mauduit")
203 liquid-war-6)
204(define-member (person "Nikos Mavrogiannopoulos")
205 libtasn1)
206(define-member (person "Andreas Enge")
207 mpc)
208(define-member (person "Han-Wen Nienhuys")
209 lilypond)
210(define-member (person "Tobias Geerinckx-Rice")
211 guix)
212(define-member (person "Bernard Giroud")
213 gnucobol)
214(define-member (person "Tom Tromey")
215 source-highlight)
216(define-member (person "Jeff Law")
217 gcc)
218(define-member (person "David Malcolm")
219 gcc)
220(define-member (person "Ricardo Wurmus"
221 "https://elephly.net")
222 guix gwl guile-debbugs)
223(define-member (person "Marius Bakke")
224 guix)