@daugasauron/dolly-image-default 0.0.0-stage → 0.1.4-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Dollyfile +58 -0
- package/Dollyfile-amy +24 -0
- package/Dollyfile-core +49 -0
- package/Dollyfile-curl +58 -0
- package/Dollyfile-display +34 -0
- package/Dollyfile-ghostty-build +147 -0
- package/Dollyfile-git +191 -0
- package/Dollyfile-gzip +19 -0
- package/Dollyfile-mandoc +131 -0
- package/Dollyfile-nena +19 -0
- package/Dollyfile-posix +134 -0
- package/Dollyfile-ps +22 -0
- package/Dollyfile-system-build +464 -0
- package/Dollyfile-system-tools +242 -0
- package/Dollyfile-transfer +71 -0
- package/Dollyfile-zig-build +157 -0
- package/Dollyfile-zlib +48 -0
- package/README.md +18 -2
- package/dist/dolly-amy-system-snapshot.mjs +61 -0
- package/dist/dolly-core-system-snapshot.mjs +95 -0
- package/dist/dolly-curl-system-snapshot.mjs +74 -0
- package/dist/dolly-default-system-snapshot.mjs +459 -0
- package/dist/dolly-display-system-snapshot.mjs +98 -0
- package/dist/dolly-ghostty-build-system-snapshot.mjs +3583 -0
- package/dist/dolly-git-system-snapshot.mjs +137 -0
- package/dist/dolly-gzip-system-snapshot.mjs +70 -0
- package/dist/dolly-images.mjs +1268 -0
- package/dist/dolly-mandoc-system-snapshot.mjs +135 -0
- package/dist/dolly-nena-system-snapshot.mjs +58 -0
- package/dist/dolly-posix-system-snapshot.mjs +265 -0
- package/dist/dolly-ps-system-snapshot.mjs +43 -0
- package/dist/dolly-system-build-system-snapshot.mjs +1965 -0
- package/dist/dolly-system-tools-system-snapshot.mjs +2296 -0
- package/dist/dolly-transfer-system-snapshot.mjs +61 -0
- package/dist/dolly-zig-build-system-snapshot.mjs +3502 -0
- package/dist/dolly-zlib-system-snapshot.mjs +60 -0
- package/dist/packs/0783767f26f8e79bac2e9a5337aa05b4c7cf0e5ec3d03f73ca393d3949a064fa.snapshot.gz +0 -0
- package/dist/packs/153becb9a727327866389d89eca64e9f0b60a33d545b9e0e8c561e10c9ab327f.snapshot.gz +0 -0
- package/dist/packs/291bc8dc868becf690902a0092d64db86298ff26d6787cb742afb8ec86124ed0.snapshot.gz +0 -0
- package/dist/packs/3a6a5f2102877637bc6d81e66af9b5ab063c27a9ad0e9a01ad11df979f6b6acb.snapshot.gz +0 -0
- package/dist/packs/4d55e5ac579b6047065f9180df912fa2a21af4e1c764415a299cb89b3c0090c0.snapshot.gz +0 -0
- package/index.mjs +6 -0
- package/package.json +15 -4
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
DOLLY 7
|
|
2
|
+
TOOLCHAIN system-tools
|
|
3
|
+
REQUIRES HOST runtime@0
|
|
4
|
+
REQUIRES HOST display@0
|
|
5
|
+
REQUIRES HOST input@0
|
|
6
|
+
REQUIRES HOST http@0
|
|
7
|
+
REQUIRES HOST threads@0
|
|
8
|
+
|
|
9
|
+
FROM /v0.1.4/Dollyfile-system-build 7997c05ba08220831088b2aa713c86dbf0ded0229bbfa84f411476f00269d9fc
|
|
10
|
+
# Unchanged upstream sbase commands, built by sbase's own Makefile.
|
|
11
|
+
REQUIRES HEADER libc
|
|
12
|
+
REQUIRES TOOL ar
|
|
13
|
+
REQUIRES TOOL cc
|
|
14
|
+
REQUIRES TOOL make
|
|
15
|
+
REQUIRES TOOL mv
|
|
16
|
+
REQUIRES TOOL rm
|
|
17
|
+
REQUIRES TOOL tar
|
|
18
|
+
|
|
19
|
+
SOURCE /v0.1.4/dist/static/default/sbase.tar 23daa7bd6d5169ba5ad4a9801fe039ba28b103e3dbb74583fccb48f3333253eb /tmp/sbase.tar
|
|
20
|
+
SLOP tar \
|
|
21
|
+
-xf /tmp/sbase.tar \
|
|
22
|
+
-C /
|
|
23
|
+
|
|
24
|
+
FILE /tmp/sbase/dolly.mk
|
|
25
|
+
TOOLS = basename cksum cmp comm cut date dd dirname expand expr false fold \
|
|
26
|
+
grep head join kill ln md5sum mktemp nl od paste pathchk \
|
|
27
|
+
printenv printf readlink rmdir sed seq sha256sum sleep sort split \
|
|
28
|
+
strings tail tee tr true \
|
|
29
|
+
tsort uname unexpand uniq wc which
|
|
30
|
+
.RECIPEPREFIX := >
|
|
31
|
+
dolly-bin: $(TOOLS)
|
|
32
|
+
>mv $(TOOLS) /bin
|
|
33
|
+
>mv $(TOOLS:=.1) /usr/share/man/man1
|
|
34
|
+
.RECIPEPREFIX :=
|
|
35
|
+
include Makefile
|
|
36
|
+
SLOP make \
|
|
37
|
+
-C /tmp/sbase \
|
|
38
|
+
-f dolly.mk \
|
|
39
|
+
CFLAGS=-O2 \
|
|
40
|
+
ARFLAGS=rc \
|
|
41
|
+
RANLIB=:
|
|
42
|
+
|
|
43
|
+
EXPORTS TOOL basename
|
|
44
|
+
EXPORTS TOOL cksum
|
|
45
|
+
EXPORTS TOOL cmp
|
|
46
|
+
EXPORTS TOOL comm
|
|
47
|
+
EXPORTS TOOL cut
|
|
48
|
+
EXPORTS TOOL date
|
|
49
|
+
EXPORTS TOOL dd
|
|
50
|
+
EXPORTS TOOL dirname
|
|
51
|
+
EXPORTS TOOL expand
|
|
52
|
+
EXPORTS TOOL expr
|
|
53
|
+
EXPORTS TOOL false
|
|
54
|
+
EXPORTS TOOL fold
|
|
55
|
+
EXPORTS TOOL grep
|
|
56
|
+
EXPORTS TOOL head
|
|
57
|
+
EXPORTS TOOL join
|
|
58
|
+
EXPORTS TOOL kill
|
|
59
|
+
EXPORTS TOOL ln
|
|
60
|
+
EXPORTS TOOL md5sum
|
|
61
|
+
EXPORTS TOOL mktemp
|
|
62
|
+
EXPORTS TOOL nl
|
|
63
|
+
EXPORTS TOOL od
|
|
64
|
+
EXPORTS TOOL paste
|
|
65
|
+
EXPORTS TOOL pathchk
|
|
66
|
+
EXPORTS TOOL printenv
|
|
67
|
+
EXPORTS TOOL printf
|
|
68
|
+
EXPORTS TOOL readlink
|
|
69
|
+
EXPORTS TOOL rmdir
|
|
70
|
+
EXPORTS TOOL sed
|
|
71
|
+
EXPORTS TOOL seq
|
|
72
|
+
EXPORTS TOOL sha256sum
|
|
73
|
+
EXPORTS TOOL sleep
|
|
74
|
+
EXPORTS TOOL sort
|
|
75
|
+
EXPORTS TOOL split
|
|
76
|
+
EXPORTS TOOL strings
|
|
77
|
+
EXPORTS TOOL tail
|
|
78
|
+
EXPORTS TOOL tee
|
|
79
|
+
EXPORTS TOOL tr
|
|
80
|
+
EXPORTS TOOL true
|
|
81
|
+
EXPORTS TOOL tsort
|
|
82
|
+
EXPORTS TOOL uname
|
|
83
|
+
EXPORTS TOOL unexpand
|
|
84
|
+
EXPORTS TOOL uniq
|
|
85
|
+
EXPORTS TOOL wc
|
|
86
|
+
EXPORTS TOOL which
|
|
87
|
+
|
|
88
|
+
FILE /usr/share/licenses/sbase/LICENSE
|
|
89
|
+
|
|
90
|
+
SLOP rm \
|
|
91
|
+
-rf \
|
|
92
|
+
/tmp/sbase \
|
|
93
|
+
/tmp/sbase.tar
|
|
94
|
+
# Shared C/C++ build and system utilities, without a display or Rust tools.
|
|
95
|
+
# Samurai is a compact Ninja-compatible executor. Its upstream parser, graph,
|
|
96
|
+
# depfile handling, and build log stay as separate ordinary C translation
|
|
97
|
+
# units, and its jobs start through posix_spawn, unchanged. `util.c` has two
|
|
98
|
+
# explicit loop checkpoints and is compiled without generic edge coverage,
|
|
99
|
+
# which otherwise causes a severe bootstrap-compiler blowup for that one file.
|
|
100
|
+
REQUIRES HEADER runtime
|
|
101
|
+
|
|
102
|
+
SOURCE /v0.1.4/dist/static/default/samurai.tar df4d14af0e48a206d1ccc175f134c3c81b6601b3d243b24561b1927ecd0afc45 /tmp/ninja/samurai.tar
|
|
103
|
+
SOURCE /v0.1.4/dist/static/default/runtimes/samurai-unit-dolly.c 4412175ad18939c580d6a31ca89a1284d313026674d5ac4faa0841aab379a4f7 /tmp/ninja/samurai-unit-dolly.c
|
|
104
|
+
|
|
105
|
+
FILE /tmp/ninja/Makefile
|
|
106
|
+
.RECIPEPREFIX := >
|
|
107
|
+
SOURCE_ROOT := /tmp/ninja/source
|
|
108
|
+
NAMES := build deps env graph htab log parse samu scan tool tree util os-posix
|
|
109
|
+
SOURCES := $(addprefix $(SOURCE_ROOT)/,$(addsuffix .c,$(NAMES)))
|
|
110
|
+
PARTS := 1 2 3 4 5 6 7 8 9 10 11 12 13
|
|
111
|
+
UNIT := /tmp/ninja/samurai-unit-dolly.c
|
|
112
|
+
OBJECTS := $(addprefix /tmp/ninja/part-,$(addsuffix .o,$(PARTS)))
|
|
113
|
+
CFLAGS := -O1 -std=c99 -D_POSIX_C_SOURCE=200809L -I $(SOURCE_ROOT)
|
|
114
|
+
|
|
115
|
+
all: /usr/bin/ninja
|
|
116
|
+
|
|
117
|
+
/tmp/ninja/part-12.o: $(UNIT) $(SOURCES)
|
|
118
|
+
>cc \
|
|
119
|
+
> $(CFLAGS) \
|
|
120
|
+
> -O0 \
|
|
121
|
+
> -DDOLLY_SAMURAI_PART=12 \
|
|
122
|
+
> -c $(UNIT) \
|
|
123
|
+
> -o $@
|
|
124
|
+
|
|
125
|
+
/tmp/ninja/part-%.o: $(UNIT) $(SOURCES)
|
|
126
|
+
>cc \
|
|
127
|
+
> $(CFLAGS) \
|
|
128
|
+
> -DDOLLY_SAMURAI_PART=$* \
|
|
129
|
+
> -c $(UNIT) \
|
|
130
|
+
> -o $@
|
|
131
|
+
|
|
132
|
+
/usr/bin/ninja: $(OBJECTS)
|
|
133
|
+
>cc $(OBJECTS) -o $@
|
|
134
|
+
|
|
135
|
+
SLOP tar \
|
|
136
|
+
-xf /tmp/ninja/samurai.tar \
|
|
137
|
+
-C /
|
|
138
|
+
SLOP make \
|
|
139
|
+
-f /tmp/ninja/Makefile
|
|
140
|
+
|
|
141
|
+
EXPORTS TOOL ninja
|
|
142
|
+
|
|
143
|
+
SLOP ninja \
|
|
144
|
+
--version
|
|
145
|
+
SLOP cp /tmp/ninja/source/samu.1 /usr/share/man/man1/ninja.1
|
|
146
|
+
|
|
147
|
+
FILE /usr/share/licenses/samurai/LICENSE
|
|
148
|
+
|
|
149
|
+
SLOP rm \
|
|
150
|
+
-rf \
|
|
151
|
+
/tmp/ninja
|
|
152
|
+
# zlib, gzip and curl for builds, and Git, which Dolly's patch and diff run.
|
|
153
|
+
INSTALL /v0.1.4/Dollyfile-zlib 7f3254e8d51bc7edd2fa47b19f3b1e2e43c747476ab93c57654639e4119abde7
|
|
154
|
+
INSTALL /v0.1.4/Dollyfile-gzip 1be14cb6142500862aa5362445cdfa3c5fc7f4817e775a614754e3dc91ead079
|
|
155
|
+
INSTALL /v0.1.4/Dollyfile-curl 173c3c37eeac846ba8caa316c656cb75e5facea793eb9434337550ddaf3d32d1
|
|
156
|
+
INSTALL /v0.1.4/Dollyfile-git e2e345443c205910aa59f4896970f54726e209eb522083a27ac9307e678eb26f
|
|
157
|
+
SOURCE /v0.1.4/dist/static/default/awk.tar f28cae177fa60793a70066d10667e8d06775d979f2262be1c48f8eb941090015 /tmp/awk.tar
|
|
158
|
+
SLOP tar \
|
|
159
|
+
-xf /tmp/awk.tar \
|
|
160
|
+
-C /
|
|
161
|
+
|
|
162
|
+
FILE /tmp/awk/Makefile
|
|
163
|
+
.RECIPEPREFIX := >
|
|
164
|
+
SOURCES := /usr/src/awk/awkgram.tab.c /usr/src/awk/b.c /usr/src/awk/main.c /usr/src/awk/parse.c /usr/src/awk/proctab.c /usr/src/awk/tran.c /usr/src/awk/lib.c /usr/src/awk/run.c /usr/src/awk/lex.c
|
|
165
|
+
all: /bin/awk
|
|
166
|
+
/usr/libexec/dolly/awk-maketab: /usr/src/awk/maketab.c
|
|
167
|
+
>cc -std=gnu99 -I /usr/src/awk -DNDEBUG $< -o $@
|
|
168
|
+
/usr/src/awk/proctab.c: /usr/libexec/dolly/awk-maketab /usr/src/awk/awkgram.tab.h
|
|
169
|
+
>/usr/libexec/dolly/awk-maketab /usr/src/awk/awkgram.tab.h > $@
|
|
170
|
+
/bin/awk: $(SOURCES)
|
|
171
|
+
>cc -std=gnu99 -fno-builtin -I /usr/src/awk -D_DEFAULT_SOURCE -DNDEBUG $^ -o $@
|
|
172
|
+
SLOP CWD /usr/src/awk make \
|
|
173
|
+
-f /tmp/awk/Makefile
|
|
174
|
+
|
|
175
|
+
EXPORTS TOOL awk
|
|
176
|
+
FILE /usr/share/licenses/awk/LICENSE
|
|
177
|
+
|
|
178
|
+
SLOP awk \
|
|
179
|
+
--version
|
|
180
|
+
|
|
181
|
+
SLOP rm \
|
|
182
|
+
-rf \
|
|
183
|
+
/tmp/awk \
|
|
184
|
+
/tmp/awk.tar \
|
|
185
|
+
/usr/libexec/dolly/awk-maketab \
|
|
186
|
+
/usr/src/awk
|
|
187
|
+
# Focused compatibility commands used by build systems and coding agents.
|
|
188
|
+
# Each remains a separate Wasm executable; wrappers which launch another tool
|
|
189
|
+
# do so through Dolly's in-userspace spawn/wait contract.
|
|
190
|
+
SOURCE /v0.1.4/dist/static/default/commands/run-program.h e73415ba149e8dcb9944313c36d8d2319202d699c810e02a26d5a94caa8f3a9f /tmp/agent-tools/run-program.h
|
|
191
|
+
SOURCE /v0.1.4/dist/static/default/commands/install.c 0aa8729ff8f6d8ecc454757226275b946b28c2e6783afd571f4c33a616cb4ba3 /tmp/agent-tools/install.c
|
|
192
|
+
SOURCE /v0.1.4/dist/static/default/commands/du.c 55b6a61ea8dc2a4355aaafc9a80d2218f397fa4d1e170b78462863fc9cb2ed63 /tmp/agent-tools/du.c
|
|
193
|
+
SOURCE /v0.1.4/dist/static/default/commands/rev.c 3539529d49f26629a6518437dc76631f113bcc5822ff5dbc8aa26481933f3d05 /tmp/agent-tools/rev.c
|
|
194
|
+
SOURCE /v0.1.4/dist/static/default/commands/command.c a84673243407a37f42b1a82a47fab4123c165b383761642874ba2ec081938bd3 /tmp/agent-tools/command.c
|
|
195
|
+
SOURCE /v0.1.4/dist/static/default/commands/xargs.c 4b94714fb29a296df4b71d648dbd222763ca11738b7c651d1de3f5ee5c84e9f3 /tmp/agent-tools/xargs.c
|
|
196
|
+
SOURCE /v0.1.4/dist/static/default/commands/find.c 342ba6df849456d47646b7531718ca9682d27b3215c355ebb156eae7e8b16813 /tmp/agent-tools/find.c
|
|
197
|
+
SOURCE /v0.1.4/dist/static/default/commands/env.c 62c71b67f4623f7b2f253c5474ff8745ed335325ed0392b992e4adc8653a6902 /tmp/agent-tools/env.c
|
|
198
|
+
SOURCE /v0.1.4/dist/static/default/commands/time.c bb49a29e708e9e32716e2d5bf4b4b4e662b07093d0e3731588ef7d41a53ad733 /tmp/agent-tools/time.c
|
|
199
|
+
SOURCE /v0.1.4/dist/static/default/commands/timeout.c 4864285ae0b36f853376e6e77855f4d1f8159b96d716bd9466606b9bef1c5f16 /tmp/agent-tools/timeout.c
|
|
200
|
+
SOURCE /v0.1.4/dist/static/default/commands/realpath.c 6ec82439ecf3ab1d21a40293ab7e585972c523d8c8e4573a60a7cef86af08250 /tmp/agent-tools/realpath.c
|
|
201
|
+
SOURCE /v0.1.4/dist/static/default/commands/hostname.c 14a20a493c8559d8b28f221a6edd9b6f89f893f3e3067093b44d7235b4ae060f /tmp/agent-tools/hostname.c
|
|
202
|
+
SOURCE /v0.1.4/dist/static/default/commands/tty.c c51c9598e8245d5f651ade70995f2b03fb936c42a0e99c4c81c83749c5714c7e /tmp/agent-tools/tty.c
|
|
203
|
+
SOURCE /v0.1.4/dist/static/default/commands/nproc.c 96ce7b8d1b1cee59d12193c2fa6fab5210bb7f0c9a0d0cc9bde7e0fd8d87c7ac /tmp/agent-tools/nproc.c
|
|
204
|
+
|
|
205
|
+
FILE /tmp/agent-tools/Makefile
|
|
206
|
+
.RECIPEPREFIX := >
|
|
207
|
+
NAMES := install du rev command xargs find env time timeout realpath hostname tty nproc
|
|
208
|
+
TOOLS := $(addprefix /bin/,$(NAMES))
|
|
209
|
+
all: $(TOOLS) $(NAMES:%=/usr/share/man/cat1/%.1)
|
|
210
|
+
/bin/%: /tmp/agent-tools/%.c /tmp/agent-tools/run-program.h
|
|
211
|
+
>cc -O2 $< -o $@
|
|
212
|
+
/usr/share/man/cat1/%.1: /bin/%
|
|
213
|
+
>$< --help > $@
|
|
214
|
+
SLOP make \
|
|
215
|
+
-f /tmp/agent-tools/Makefile
|
|
216
|
+
|
|
217
|
+
EXPORTS TOOL install
|
|
218
|
+
EXPORTS TOOL du
|
|
219
|
+
EXPORTS TOOL rev
|
|
220
|
+
EXPORTS TOOL command
|
|
221
|
+
EXPORTS TOOL xargs
|
|
222
|
+
EXPORTS TOOL find
|
|
223
|
+
EXPORTS TOOL env
|
|
224
|
+
EXPORTS TOOL time
|
|
225
|
+
EXPORTS TOOL timeout
|
|
226
|
+
EXPORTS TOOL realpath
|
|
227
|
+
EXPORTS TOOL hostname
|
|
228
|
+
EXPORTS TOOL tty
|
|
229
|
+
EXPORTS TOOL nproc
|
|
230
|
+
|
|
231
|
+
SLOP rm \
|
|
232
|
+
-rf \
|
|
233
|
+
/tmp/agent-tools
|
|
234
|
+
# Conventional pathname for upstream scripts; the implementation is Slop.
|
|
235
|
+
REQUIRES TOOL ln
|
|
236
|
+
SLOP ln -s slop /bin/sh
|
|
237
|
+
EXPORTS TOOL sh
|
|
238
|
+
SLOP cp /usr/share/man/cat1/slop.1 /usr/share/man/cat1/sh.1
|
|
239
|
+
FOLDER /usr/share/man
|
|
240
|
+
INSTALL /v0.1.4/Dollyfile-display d15ef860730ddefa417080c1d27cc0a26f03d5409c93805e9b3cbc5b6af61011
|
|
241
|
+
|
|
242
|
+
ENTRY /bin/foreground -i /bin/slop
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
DOLLY 7
|
|
2
|
+
PACKAGE transfer
|
|
3
|
+
REQUIRES HOST runtime@0
|
|
4
|
+
REQUIRES HOST download@0
|
|
5
|
+
REQUIRES HOST upload@0
|
|
6
|
+
|
|
7
|
+
# The page's file exchange: download offers a file of the session to the
|
|
8
|
+
# browser, upload takes one the user chooses.
|
|
9
|
+
FROM /v0.1.4/Dollyfile-system-build 7997c05ba08220831088b2aa713c86dbf0ded0229bbfa84f411476f00269d9fc
|
|
10
|
+
REQUIRES HEADER libc
|
|
11
|
+
REQUIRES HEADER download
|
|
12
|
+
REQUIRES HEADER upload
|
|
13
|
+
REQUIRES TOOL cc
|
|
14
|
+
REQUIRES TOOL rm
|
|
15
|
+
|
|
16
|
+
FILE /tmp/download/download.c
|
|
17
|
+
#include <stdio.h>
|
|
18
|
+
#include <string.h>
|
|
19
|
+
|
|
20
|
+
#include <dolly/download.h>
|
|
21
|
+
|
|
22
|
+
int main(int argc, char **argv) {
|
|
23
|
+
if (argc == 2 && strcmp(argv[1], "--help") == 0) {
|
|
24
|
+
fputs("usage: download FILE\n", stdout);
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
if (argc != 2) {
|
|
28
|
+
fputs("download: expected one file\n", stderr);
|
|
29
|
+
return 2;
|
|
30
|
+
}
|
|
31
|
+
const int status = dolly_download_file(argv[1]);
|
|
32
|
+
if (status != 0) {
|
|
33
|
+
fprintf(stderr, "download: %s failed (%d)\n", argv[1], status);
|
|
34
|
+
return 1;
|
|
35
|
+
}
|
|
36
|
+
printf("download: requested %s\n", argv[1]);
|
|
37
|
+
return 0;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
SLOP cc \
|
|
41
|
+
/tmp/download/download.c \
|
|
42
|
+
-o /bin/download
|
|
43
|
+
|
|
44
|
+
EXPORTS TOOL download
|
|
45
|
+
SLOP download --help > /usr/share/man/cat1/download.1
|
|
46
|
+
|
|
47
|
+
FILE /tmp/upload/upload.c
|
|
48
|
+
#include <dolly/upload.h>
|
|
49
|
+
#include <stdio.h>
|
|
50
|
+
#include <stdlib.h>
|
|
51
|
+
#include <string.h>
|
|
52
|
+
int main(int argc, char **argv) {
|
|
53
|
+
if (argc != 2 || strcmp(argv[1], "--help") == 0) {
|
|
54
|
+
fprintf(argc == 2 ? stdout : stderr, "usage: upload DESTINATION\nChoose a file in the browser (up to %u MiB). Existing files are never replaced.\n",
|
|
55
|
+
DOLLY_UPLOAD_MAX_SIZE >> 20);
|
|
56
|
+
return argc == 2 ? 0 : 2;
|
|
57
|
+
}
|
|
58
|
+
puts("upload: choose a file in the browser, or cancel");
|
|
59
|
+
fflush(stdout);
|
|
60
|
+
const int result = dolly_upload_file(argv[1]);
|
|
61
|
+
if (result < 0) { fprintf(stderr, "upload: %s\n", strerror((int)-result)); return 1; }
|
|
62
|
+
printf("upload: saved %s\n", argv[1]);
|
|
63
|
+
return 0;
|
|
64
|
+
}
|
|
65
|
+
SLOP cc -O1 /tmp/upload/upload.c -o /bin/upload
|
|
66
|
+
EXPORTS TOOL upload
|
|
67
|
+
SLOP upload --help > /usr/share/man/cat1/upload.1
|
|
68
|
+
|
|
69
|
+
FILE /usr/share/man/cat1/download.1
|
|
70
|
+
FILE /usr/share/man/cat1/upload.1
|
|
71
|
+
SLOP rm -rf /tmp/download /tmp/upload
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
DOLLY 7
|
|
2
|
+
TOOLCHAIN zig-build
|
|
3
|
+
REQUIRES HOST runtime@0
|
|
4
|
+
REQUIRES HOST http@0
|
|
5
|
+
|
|
6
|
+
FROM /v0.1.4/Dollyfile-system-build 7997c05ba08220831088b2aa713c86dbf0ded0229bbfa84f411476f00269d9fc
|
|
7
|
+
|
|
8
|
+
# Zig from its source archive with only Dolly's cc, following upstream
|
|
9
|
+
# bootstrap.c with two substitutions. WAMR runs the zig1.wasm seed instead of
|
|
10
|
+
# wasm2c + cc, whose code overflows a browser Worker's native stack. zig2 keeps
|
|
11
|
+
# only the C backend (/tmp/zig/config.zig), the one that yields Dolly objects
|
|
12
|
+
# without LLVM: this zig emits C for cc and has no `zig build` or `zig cc`.
|
|
13
|
+
REQUIRES HEADER libc
|
|
14
|
+
REQUIRES TOOL cc
|
|
15
|
+
REQUIRES TOOL tar
|
|
16
|
+
|
|
17
|
+
SOURCE /v0.1.4/dist/static/default/zig.tar ecb90770bd24a400120a74903557134642902eb4656d1f7dd3fe5a9eebb11943 /tmp/zig.tar
|
|
18
|
+
SOURCE /v0.1.4/dist/static/default/wamr.tar d35ec64a48e61f6a65397d3d9f13823735a94623a9dcd007b093279e5e0e3615 /tmp/wamr.tar
|
|
19
|
+
SLOP tar \
|
|
20
|
+
-xf /tmp/zig.tar \
|
|
21
|
+
-C /
|
|
22
|
+
SLOP tar \
|
|
23
|
+
-xf /tmp/wamr.tar \
|
|
24
|
+
-C /
|
|
25
|
+
|
|
26
|
+
# WAMR's target is WebAssembly (config/wamr-dolly.patch), which has no native
|
|
27
|
+
# calling convention: only raw natives can be called, and zig1 binds only those.
|
|
28
|
+
SLOP CWD /tmp/wamr/core cc \
|
|
29
|
+
-O2 \
|
|
30
|
+
-std=gnu99 \
|
|
31
|
+
-fno-strict-aliasing \
|
|
32
|
+
-w \
|
|
33
|
+
-D_PLATFORM_WASI_TYPES_H \
|
|
34
|
+
-DBH_PLATFORM_DOLLY \
|
|
35
|
+
-DBH_MALLOC=wasm_runtime_malloc \
|
|
36
|
+
-DBH_FREE=wasm_runtime_free \
|
|
37
|
+
-DWA_MALLOC=wasm_runtime_malloc \
|
|
38
|
+
-DWA_FREE=wasm_runtime_free \
|
|
39
|
+
-DWASM_ENABLE_INTERP=1 \
|
|
40
|
+
-DWASM_ENABLE_FAST_INTERP=1 \
|
|
41
|
+
-DWASM_ENABLE_LABELS_AS_VALUES=0 \
|
|
42
|
+
-DWASM_CPU_SUPPORTS_UNALIGNED_ADDR_ACCESS=0 \
|
|
43
|
+
-DWASM_ENABLE_BULK_MEMORY=1 \
|
|
44
|
+
-DWASM_ENABLE_BULK_MEMORY_OPT=1 \
|
|
45
|
+
-DWASM_ENABLE_SHRUNK_MEMORY=1 \
|
|
46
|
+
-DWASM_DISABLE_HW_BOUND_CHECK=1 \
|
|
47
|
+
-DWASM_DISABLE_STACK_HW_BOUND_CHECK=1 \
|
|
48
|
+
-DWASM_DISABLE_WRITE_GS_BASE=1 \
|
|
49
|
+
-DWASM_DISABLE_WAKEUP_BLOCKING_OP=1 \
|
|
50
|
+
-DWASM_ENABLE_SHARED_MEMORY=0 \
|
|
51
|
+
-DWASM_ENABLE_MULTI_MODULE=0 \
|
|
52
|
+
-DWASM_ENABLE_MINI_LOADER=0 \
|
|
53
|
+
-DWASM_ENABLE_REF_TYPES=0 \
|
|
54
|
+
-DWASM_ENABLE_SIMD=0 \
|
|
55
|
+
-DWASM_ENABLE_EXTENDED_CONST_EXPR=0 \
|
|
56
|
+
-DWASM_ENABLE_MEMORY64=0 \
|
|
57
|
+
-I /tmp/wamr \
|
|
58
|
+
-I /tmp/zig/stage1 \
|
|
59
|
+
-I shared/platform/include \
|
|
60
|
+
-I shared/utils \
|
|
61
|
+
-I shared/mem-alloc \
|
|
62
|
+
-I iwasm/include \
|
|
63
|
+
-I iwasm/common \
|
|
64
|
+
-I iwasm/interpreter \
|
|
65
|
+
/tmp/wamr/zig1.c \
|
|
66
|
+
/tmp/wamr/wamr-platform.c \
|
|
67
|
+
shared/mem-alloc/mem_alloc.c \
|
|
68
|
+
shared/mem-alloc/ems/ems_alloc.c \
|
|
69
|
+
shared/mem-alloc/ems/ems_gc.c \
|
|
70
|
+
shared/mem-alloc/ems/ems_hmu.c \
|
|
71
|
+
shared/mem-alloc/ems/ems_kfc.c \
|
|
72
|
+
shared/utils/bh_assert.c \
|
|
73
|
+
shared/utils/bh_bitmap.c \
|
|
74
|
+
shared/utils/bh_common.c \
|
|
75
|
+
shared/utils/bh_hashmap.c \
|
|
76
|
+
shared/utils/bh_leb128.c \
|
|
77
|
+
shared/utils/bh_list.c \
|
|
78
|
+
shared/utils/bh_log.c \
|
|
79
|
+
shared/utils/bh_queue.c \
|
|
80
|
+
shared/utils/bh_vector.c \
|
|
81
|
+
shared/utils/runtime_timer.c \
|
|
82
|
+
iwasm/common/wasm_application.c \
|
|
83
|
+
iwasm/common/wasm_blocking_op.c \
|
|
84
|
+
iwasm/common/wasm_c_api.c \
|
|
85
|
+
iwasm/common/wasm_exec_env.c \
|
|
86
|
+
iwasm/common/wasm_loader_common.c \
|
|
87
|
+
iwasm/common/wasm_memory.c \
|
|
88
|
+
iwasm/common/wasm_native.c \
|
|
89
|
+
iwasm/common/wasm_runtime_common.c \
|
|
90
|
+
iwasm/common/wasm_shared_memory.c \
|
|
91
|
+
iwasm/interpreter/wasm_interp_fast.c \
|
|
92
|
+
iwasm/interpreter/wasm_loader.c \
|
|
93
|
+
iwasm/interpreter/wasm_runtime.c \
|
|
94
|
+
-o /tmp/zig/zig1
|
|
95
|
+
|
|
96
|
+
# zig1's WASI adapter reaches only its working directory and lib argument.
|
|
97
|
+
SLOP CWD / /tmp/zig/zig1 \
|
|
98
|
+
/tmp/zig/stage1/zig1.wasm \
|
|
99
|
+
/usr/lib/zig \
|
|
100
|
+
build-exe \
|
|
101
|
+
-target wasm64-emscripten \
|
|
102
|
+
-mcpu=generic+atomics \
|
|
103
|
+
-fsingle-threaded \
|
|
104
|
+
-OReleaseSmall \
|
|
105
|
+
-ofmt=c \
|
|
106
|
+
-lc \
|
|
107
|
+
--name zig2 \
|
|
108
|
+
-femit-bin=tmp/zig/zig2.c \
|
|
109
|
+
--dep build_options \
|
|
110
|
+
--dep aro \
|
|
111
|
+
-Mroot=tmp/zig/src/main.zig \
|
|
112
|
+
-Mbuild_options=tmp/zig/config.zig \
|
|
113
|
+
-Maro=usr/lib/zig/compiler/aro/aro.zig
|
|
114
|
+
SLOP CWD / /tmp/zig/zig1 \
|
|
115
|
+
/tmp/zig/stage1/zig1.wasm \
|
|
116
|
+
/usr/lib/zig \
|
|
117
|
+
build-obj \
|
|
118
|
+
-target wasm64-emscripten \
|
|
119
|
+
-mcpu=generic+atomics \
|
|
120
|
+
-fsingle-threaded \
|
|
121
|
+
-OReleaseSmall \
|
|
122
|
+
-ofmt=c \
|
|
123
|
+
--name compiler_rt \
|
|
124
|
+
-femit-bin=tmp/zig/compiler_rt.c \
|
|
125
|
+
-Mroot=usr/lib/zig/compiler_rt.zig
|
|
126
|
+
|
|
127
|
+
# zig.h passes usize (unsigned long) as uint64_t * (unsigned long long *) and,
|
|
128
|
+
# not recognizing Clang's wasm memory builtins, names an undefined
|
|
129
|
+
# zig_unimplemented().
|
|
130
|
+
SLOP CWD /tmp/zig cc \
|
|
131
|
+
-c \
|
|
132
|
+
-O2 \
|
|
133
|
+
-std=c99 \
|
|
134
|
+
-fno-strict-aliasing \
|
|
135
|
+
-Wno-incompatible-pointer-types \
|
|
136
|
+
'-Dzig_unimplemented()=(__builtin_trap(),0)' \
|
|
137
|
+
-I /usr/lib/zig \
|
|
138
|
+
-o zig2.o \
|
|
139
|
+
zig2.c
|
|
140
|
+
SLOP CWD /tmp/zig cc \
|
|
141
|
+
-c \
|
|
142
|
+
-O2 \
|
|
143
|
+
-std=c99 \
|
|
144
|
+
-fno-strict-aliasing \
|
|
145
|
+
-Wno-incompatible-pointer-types \
|
|
146
|
+
-I /usr/lib/zig \
|
|
147
|
+
-o compiler_rt.o \
|
|
148
|
+
compiler_rt.c
|
|
149
|
+
SLOP CWD /tmp/zig cc \
|
|
150
|
+
-o /usr/bin/zig \
|
|
151
|
+
zig2.o \
|
|
152
|
+
compiler_rt.o
|
|
153
|
+
|
|
154
|
+
EXPORTS TOOL zig
|
|
155
|
+
EXPORTS FOLDER zig-lib /usr/lib/zig
|
|
156
|
+
EXPORTS ENV ZIG_LIB_DIR /usr/lib/zig
|
|
157
|
+
FILE /usr/share/licenses/zig/LICENSE
|
package/Dollyfile-zlib
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
DOLLY 7
|
|
2
|
+
PACKAGE zlib
|
|
3
|
+
REQUIRES HOST runtime@0
|
|
4
|
+
|
|
5
|
+
FROM /v0.1.4/Dollyfile-system-build 7997c05ba08220831088b2aa713c86dbf0ded0229bbfa84f411476f00269d9fc
|
|
6
|
+
|
|
7
|
+
REQUIRES HEADER libc
|
|
8
|
+
REQUIRES TOOL ar
|
|
9
|
+
REQUIRES TOOL cc
|
|
10
|
+
REQUIRES TOOL make
|
|
11
|
+
REQUIRES TOOL rm
|
|
12
|
+
REQUIRES TOOL tar
|
|
13
|
+
|
|
14
|
+
SOURCE /v0.1.4/dist/static/default/zlib.tar 3ff2e65dc35be0baa91250384dbe2b0d7c16aa73496dc20eeca86221588ead73 /tmp/zlib.tar
|
|
15
|
+
SLOP tar \
|
|
16
|
+
-xf /tmp/zlib.tar \
|
|
17
|
+
-C /
|
|
18
|
+
|
|
19
|
+
FILE /tmp/zlib/Makefile
|
|
20
|
+
.RECIPEPREFIX := >
|
|
21
|
+
CC := cc
|
|
22
|
+
AR := ar
|
|
23
|
+
NAMES := adler32 compress crc32 deflate gzclose gzlib gzread gzwrite infback inffast inflate inftrees trees uncompr zutil
|
|
24
|
+
OBJECTS := $(addprefix /tmp/zlib/,$(addsuffix .o,$(NAMES)))
|
|
25
|
+
all: /usr/lib/libz.a
|
|
26
|
+
/tmp/zlib/%.o: /usr/src/zlib/%.c
|
|
27
|
+
>$(CC) -std=c17 -O2 -I /usr/src/zlib -DZ_HAVE_UNISTD_H -c $< -o $@
|
|
28
|
+
/usr/lib/libz.a: $(OBJECTS)
|
|
29
|
+
>$(AR) rcs $@ $^
|
|
30
|
+
SLOP CWD /usr/src/zlib make \
|
|
31
|
+
-f /tmp/zlib/Makefile
|
|
32
|
+
|
|
33
|
+
EXPORTS LIB z /usr/lib/libz.a
|
|
34
|
+
EXPORTS HEADER zlib /usr/include/zlib.h
|
|
35
|
+
EXPORTS HEADER zconf /usr/include/zconf.h
|
|
36
|
+
FILE /usr/share/licenses/zlib/LICENSE
|
|
37
|
+
# What pkg-config tells a build that asks for zlib.
|
|
38
|
+
FILE /usr/lib/pkgconfig/zlib.pc
|
|
39
|
+
Name: zlib
|
|
40
|
+
Description: zlib compression library
|
|
41
|
+
Version: 1.3.2
|
|
42
|
+
Libs: -lz
|
|
43
|
+
|
|
44
|
+
SLOP rm \
|
|
45
|
+
-rf \
|
|
46
|
+
/tmp/zlib \
|
|
47
|
+
/tmp/zlib.tar \
|
|
48
|
+
/usr/src/zlib
|
package/README.md
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @daugasauron/dolly-image-default
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Dolly's `default` image: a shell, its text tools, Ghostty's terminal, curl, `amy`, `nena`
|
|
4
|
+
and `ps`, for @daugasauron/dolly's `boot()`. It depends on the runtime alone: install
|
|
5
|
+
it with the runtime and the host modules it declares, all at version 0.1.4-rc.0:
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
npm install @daugasauron/dolly @daugasauron/dolly-image-default @daugasauron/dolly-host-audio @daugasauron/dolly-host-display @daugasauron/dolly-host-download @daugasauron/dolly-host-input @daugasauron/dolly-host-sockets @daugasauron/dolly-host-touch @daugasauron/dolly-host-upload
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
```js
|
|
12
|
+
import { boot } from "./node_modules/@daugasauron/dolly/src/browser.mjs";
|
|
13
|
+
import { images, image, modules } from "./node_modules/@daugasauron/dolly-image-default/index.mjs";
|
|
14
|
+
await boot(document.querySelector("#dolly"), { images, image, modules });
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
The image holds programs built inside Dolly from their upstream sources, each under its own
|
|
18
|
+
licence: their licence texts are in the image under `/usr/share/licenses`, and Dolly's
|
|
19
|
+
`docs/licences.md` lists every upstream (https://github.com/daugasauron/dolly).
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// Generated snapshot manifest.
|
|
2
|
+
export const DOLLY_SYSTEM_SNAPSHOT = Object.freeze({
|
|
3
|
+
"image": "amy",
|
|
4
|
+
"buildId": "sha256:45d43ca59eeecb6128c23b546cd9c0d41be3cd7f67ce0c5ff78dfba4b94ef721",
|
|
5
|
+
"runtimeBuildId": "sha256:3642f6397575530c5410de65927a733ad526c2d55d239715800baac568572ec1",
|
|
6
|
+
"formatVersion": 2,
|
|
7
|
+
"identityVersion": 2,
|
|
8
|
+
"inputs": [
|
|
9
|
+
{
|
|
10
|
+
"recipeSha256": "7997c05ba08220831088b2aa713c86dbf0ded0229bbfa84f411476f00269d9fc",
|
|
11
|
+
"sha256": "c09f4f401bcfdcce4f2f53e584530d61ce25226a8a43a169b1b1929912a1f1ff"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"recipes": [
|
|
15
|
+
{
|
|
16
|
+
"name": "system-build",
|
|
17
|
+
"locator": "/v0.1.4/Dollyfile-system-build",
|
|
18
|
+
"sourcePath": "/v0.1.4/Dollyfile-system-build",
|
|
19
|
+
"retainedPath": "/etc/dolly/recipes/Dollyfile-system-build",
|
|
20
|
+
"sha256": "7997c05ba08220831088b2aa713c86dbf0ded0229bbfa84f411476f00269d9fc",
|
|
21
|
+
"byteLength": 19945
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "amy",
|
|
25
|
+
"locator": "/v0.1.4/Dollyfile-amy",
|
|
26
|
+
"sourcePath": "/v0.1.4/Dollyfile-amy",
|
|
27
|
+
"retainedPath": "/etc/dolly/recipes/Dollyfile-amy",
|
|
28
|
+
"sha256": "90701fe1be537fae9f0e376f2dcfda377c019426cdbab48faeb9107f91bcb6de",
|
|
29
|
+
"byteLength": 904
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"hostRequirements": [
|
|
33
|
+
"http@0",
|
|
34
|
+
"packages@0",
|
|
35
|
+
"runtime@0"
|
|
36
|
+
],
|
|
37
|
+
"entry": null,
|
|
38
|
+
"manifest": [
|
|
39
|
+
"/bin/amy",
|
|
40
|
+
"/bin/dollyfile",
|
|
41
|
+
"/etc/dolly/Dollyfile",
|
|
42
|
+
"/etc/dolly/artifact",
|
|
43
|
+
"/etc/dolly/environment",
|
|
44
|
+
"/etc/dolly/image",
|
|
45
|
+
"/etc/dolly/recipes.lock",
|
|
46
|
+
"/etc/dolly/recipes/Dollyfile-amy",
|
|
47
|
+
"/etc/dolly/recipes/Dollyfile-system-build",
|
|
48
|
+
"/usr/share/man/cat1/amy.1",
|
|
49
|
+
"/usr/share/man/cat1/dollyfile.1"
|
|
50
|
+
],
|
|
51
|
+
"byteLength": 240691,
|
|
52
|
+
"sha256": "8f6384906d30a0a33ade0ad6bcfef0ed1d393e6261b1869146b59dfe765ddf39",
|
|
53
|
+
"encoding": "packs",
|
|
54
|
+
"packs": [
|
|
55
|
+
{
|
|
56
|
+
"sha256": "8f6384906d30a0a33ade0ad6bcfef0ed1d393e6261b1869146b59dfe765ddf39",
|
|
57
|
+
"byteLength": 240691,
|
|
58
|
+
"encodedByteLength": 87400
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
});
|