Dhall packaging update

This commit is contained in:
Ehmry - 2019-07-31 13:31:16 +02:00
parent ab8f8ca927
commit 74090333a9
16 changed files with 146 additions and 238 deletions

2
dhall

@ -1 +1 @@
Subproject commit abd76668aeba6ebdd8396f7ec4d9c74b5b426f04
Subproject commit 4b03fc71a4529cc35cef9dfe9d95ec431f8246e6

View File

@ -16,8 +16,8 @@ in { indexInfo =
"Threes! clone"
, runtime =
defaults.runtime
⫽ { ram =
Genode.units.MiB 4
⫽ { resources =
{ caps = 128, ram = Genode.units.MiB 4 }
, requires =
List/map Text Service service [ "file_system", "nitpicker" ]
, config =

View File

@ -5,5 +5,6 @@ let defaults = ./../../pkgJoypadDefaults.dhall
in { indexInfo =
"NES emulator"
, runtime =
defaults.runtime ⫽ { ram = Genode.units.MiB 16 }
defaults.runtime
⫽ { resources = { caps = 128, ram = Genode.units.MiB 16 } }
}

View File

@ -6,8 +6,8 @@ in { indexInfo =
"Game Boy Emulator"
, runtime =
defaults.runtime
⫽ { ram =
Genode.units.MiB 8
⫽ { resources =
{ caps = 128, ram = Genode.units.MiB 8 }
, roms =
defaults.runtime.roms # [ "stdcxx.lib.so" ]
}

View File

@ -10,8 +10,8 @@ in { indexInfo =
"Game Boy Advance Emulator"
, runtime =
defaults.runtime
⫽ { ram =
Genode.units.MiB 64
⫽ { resources =
{ caps = 128, ram = Genode.units.MiB 64 }
, roms =
defaults.runtime.roms # [ "stdcxx.lib.so" ]
, config =

View File

@ -10,10 +10,8 @@ in { indexInfo =
defaults.runtime
⫽ { roms =
defaults.runtime.roms # [ "stdcxx.lib.so" ]
, ram =
Genode.units.MiB 24
, caps =
192
, resources =
{ caps = 192, ram = Genode.units.MiB 24 }
, config =
XML.text
''

View File

@ -31,10 +31,8 @@ in { indexInfo =
"QUAKE engine"
, runtime =
defaults.runtime
⫽ { ram =
Genode.units.MiB 64
, caps =
256
⫽ { resources =
{ caps = 256, ram = Genode.units.MiB 64 }
, roms =
defaults.runtime.roms # [ "quake_shareware.tar" ]
, config =

View File

@ -10,11 +10,7 @@ let Runtime/Require = types.Runtime/Require
in { runtime =
Genode.Runtime.defaults
⫽ { ram =
Genode.units.MiB 32
, caps =
128
, binary =
⫽ { binary =
"retro_frontend"
, requires =
List/map
@ -22,6 +18,8 @@ in { runtime =
Runtime/Require
Genode.Runtime.Require.require
[ "audio_out", "file_system", "nitpicker", "rm" ]
, resources =
{ caps = 128, ram = Genode.units.MiB 32 }
, roms =
[ "retro_frontend"
, "libc.lib.so"

View File

@ -1,39 +0,0 @@
<runtime ram="16M" caps="128" binary="retro_frontend">
<requires>
<audio_out/>
<nitpicker/>
<rm/>
</requires>
<content>
<rom label="240pee.nes"/>
<rom label="libc.lib.so"/>
<rom label="libm.lib.so"/>
<rom label="libretro.so"/>
<rom label="retro_frontend"/>
<rom label="vfs.lib.so"/>
</content>
<config>
<libc stdout="/dev/log" stderr="/dev/log"/>
<game/>
<vfs>
<rom name="240pee.nes"/>
<dir name="dev"> <log label="core"/> </dir>
</vfs>
<default-controller port="0" device="1">
<map from="KEY_LEFT" to="LEFT"/>
<map from="KEY_RIGHT" to="RIGHT"/>
<map from="KEY_UP" to="UP"/>
<map from="KEY_DOWN" to="DOWN"/>
<map from="KEY_X" to="A"/>
<map from="KEY_Z" to="B"/>
<map from="KEY_ENTER" to="START"/>
<map from="KEY_RIGHTSHIFT" to="SELECT"/>
</default-controller>
</config>
</runtime>

View File

@ -10,10 +10,8 @@ in { indexInfo =
"The Oldskool PC Benchmark - DOSBox"
, runtime =
defaults.runtime
⫽ { caps =
192
, ram =
Genode.units.MiB 96
⫽ { resources =
{ caps = 192, ram = Genode.units.MiB 96 }
, requires =
defaults.runtime.requires # [ require "report", require "rtc" ]
, roms =

View File

@ -1,39 +0,0 @@
<runtime ram="96M" caps="192" binary="retro_frontend">
<requires>
<file_system/>
<nitpicker/>
<report/>
<rtc/>
</requires>
<content>
<rom label="libc.lib.so"/>
<rom label="libm.lib.so"/>
<rom label="libretro.so"/>
<rom label="retro_frontend"/>
<rom label="stdcxx.lib.so"/>
<rom label="TOPBV38H.tar"/>
<rom label="vfs.lib.so"/>
</content>
<config ld_verbose="yes">
<game path="/dosbox.conf"/>
<libc stdout="/dev/log" stderr="/dev/log" rtc="/dev/rtc"/>
<vfs>
<inline name="dosbox.conf">
[autoexec]
mount c /drive_c
c:
TOPBENCH.EXE
</inline>
<dir name="drive_c">
<tar name="TOPBV38H.tar"/>
<fs/>
</dir>
<dir name="dev"> <log label="core"/> <rtc/> </dir>
</vfs>
<default-controller port="0" device="771"/>
</config>
</runtime>

View File

@ -8,10 +8,8 @@ in { indexInfo =
"Desktop backdrop image"
, runtime =
Genode.Runtime.defaults
⫽ { ram =
Genode.units.MiB 64
, caps =
300
⫽ { resources =
{ ram = Genode.units.MiB 8, caps = 96 }
, binary =
"backdrop"
, requires =

View File

@ -8,10 +8,8 @@ let config =
λ ( url
: Text
)
→ { ram =
Genode.units.MiB 32
, caps =
768
→ { resources =
{ ram = Genode.units.MiB 32, caps = 768 }
, requires =
[ service "audio_out"
, service "nic"
@ -33,51 +31,51 @@ let config =
, config =
XML.text
''
<config>
<parent-provides>
<service name="CPU"/>
<service name="LOG"/>
<service name="PD"/>
<service name="RM"/>
<service name="ROM"/>
<service name="Audio_out"/>
<service name="Timer"/>
<service name="Nic"/>
<service name="Report"/>
<service name="Rtc"/>
</parent-provides>
<start name="icy_client" caps="512">
<resource name="RAM" quantum="16M"/>
<config>
<stream url="${url}" dest="/terminal" report="yes"/>
<libc stderr="/log" stdout="/log" socket="/socket" rtc="/rtc" rng="/rtc"/>
<vfs>
<dir name="socket"> <lwip dhcp="yes"/> </dir>
<log/>
<rtc/>
<terminal/>
</vfs>
</config>
<route>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<config>
<parent-provides>
<service name="CPU"/>
<service name="LOG"/>
<service name="PD"/>
<service name="RM"/>
<service name="ROM"/>
<service name="Audio_out"/>
<service name="Timer"/>
<service name="Nic"/>
<service name="Report"/>
<service name="Rtc"/>
</parent-provides>
<start name="icy_client" caps="512">
<resource name="RAM" quantum="16M"/>
<config>
<stream url="${url}" dest="/terminal" report="yes"/>
<libc stderr="/log" stdout="/log" socket="/socket" rtc="/rtc" rng="/rtc"/>
<vfs>
<dir name="socket"> <lwip dhcp="yes"/> </dir>
<log/>
<rtc/>
<terminal/>
</vfs>
</config>
<route>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<start name="mp3_audio_sink" caps="256">
<resource name="RAM" quantum="8M"/>
<provides>
<service name="Terminal"/>
</provides>
<config>
<vfs> <null/> </vfs>
<libc stdout="/null" stderr="/null"/>
</config>
<route>
<any-service> <parent/> </any-service>
</route>
</start>
</config>
''
<start name="mp3_audio_sink" caps="256">
<resource name="RAM" quantum="8M"/>
<provides>
<service name="Terminal"/>
</provides>
<config>
<vfs> <null/> </vfs>
<libc stdout="/null" stderr="/null"/>
</config>
<route>
<any-service> <parent/> </any-service>
</route>
</start>
</config>
''
}
in λ(url : Text) → { runtime = Genode.Runtime.defaults // (config url) }
in λ(url : Text) → { runtime = Genode.Runtime.defaults ⫽ config url }

View File

@ -8,16 +8,86 @@ let service = λ(s : Text) → { service = s, label = None Text }
let serviceLabel = λ(s : Text) → λ(l : Text) → { service = s, label = Some l }
let fsService = λ(l : Text) → serviceLabel "file_system" l
let fsService = λ(label : Text) → serviceLabel "file_system" label
let Noux = Genode.Components.Noux
let Terminal = Genode.Components.Terminal
let terminal =
Terminal.construct
( Terminal.defaults
⫽ { routes =
{ fontsFs =
Genode.Route.parent (Some "fonts")
, nitpicker =
Genode.Route.parent (None Text)
, timer =
Genode.Route.parent (None Text)
}
}
)
let nouxBase =
Noux.construct
( Noux.defaults
⫽ { config =
XML.text
''
<config>
<fstab>
<tar name="bash-minimal.tar" />
<tar name="coreutils-minimal.tar" />
<tar name="vim-minimal.tar" />
<dir name="dev"> <zero/> <null/> </dir>
<dir name="rw"> <fs label="target"/> </dir>
<dir name="report"> <fs label="report"/> </dir>
<dir name="config"> <fs label="config"/> </dir>
<dir name="tmp"> <ram /> </dir>
</fstab>
<start name="/bin/bash">
<env name="TERM" value="screen" />
<env name="PS1" value="noux:$PWD " />
</start>
</config>
''
, resources =
{ caps = 512, ram = Genode.units.MiB 64 }
, routes =
{ timer = Genode.Route.parent (None Text) }
}
)
let parentFs =
λ(label : Text)
→ Genode.ServiceRoute.parent "File_system" (Some label) (Some label)
let noux =
nouxBase
⫽ { exitPropagate =
True
, routes =
nouxBase.routes
# [ Genode.ServiceRoute.child
"Terminal"
"terminal"
(None Text)
(None Text)
, parentFs "target"
, parentFs "config"
, parentFs "report"
]
}
let initConfig =
Genode.Init.defaults ⫽ { verbose = True, children = [ terminal, noux ] }
in { indexInfo =
"Noux administration environment"
, runtime =
Genode.Runtime.defaults
⫽ { ram =
Genode.units.MiB 72
, caps =
1000
⫽ { resources =
Genode.Init.sumResources initConfig
, requires =
[ fsService "config"
, fsService "report"
@ -42,77 +112,6 @@ in { indexInfo =
, "vfs.lib.so"
]
, config =
XML.text
''
<config>
<parent-provides>
<service name="ROM"/>
<service name="PD"/>
<service name="RM"/>
<service name="CPU"/>
<service name="LOG"/>
<service name="Timer"/>
<service name="File_system"/>
<service name="Nitpicker"/>
<service name="Report"/>
</parent-provides>
<default-route> <any-service> <parent/> <any-child/> </any-service> </default-route>
<default caps="100"/>
<start name="nit_fb">
<resource name="RAM" quantum="4M"/>
<provides> <service name="Framebuffer"/> <service name="Input"/> </provides>
<config xpos="10" ypos="10" initial_width="800" initial_height="600"/>
<route>
<service name="Nitpicker"> <parent label="terminal"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
<start name="terminal">
<resource name="RAM" quantum="4M"/>
<provides> <service name="Terminal"/> </provides>
<config copy="yes" paste="yes">
<vfs> <dir name="fonts"> <fs/> </dir> </vfs>
</config>
<route>
<service name="File_system"> <parent label="fonts"/> </service>
<service name="Report" label="clipboard"> <parent label="clipboard"/> </service>
<service name="ROM" label="clipboard"> <parent label="clipboard"/> </service>
<any-service> <parent/> <any-child/> </any-service>
</route>
</start>
<start name="noux" caps="500">
<resource name="RAM" quantum="60M" />
<exit propagate="yes"/>
<config>
<fstab>
<tar name="bash-minimal.tar" />
<tar name="coreutils-minimal.tar" />
<tar name="vim-minimal.tar" />
<dir name="dev"> <zero/> <null/> </dir>
<dir name="rw"> <fs label="target"/> </dir>
<dir name="report"> <fs label="report"/> </dir>
<dir name="config"> <fs label="config"/> </dir>
<dir name="tmp"> <ram /> </dir>
</fstab>
<start name="/bin/bash">
<env name="TERM" value="screen" />
<env name="PS1" value="noux:$PWD> " />
</start>
</config>
<route>
<service name="File_system" label="target"> <parent label="target"/> </service>
<service name="File_system" label="config"> <parent label="config"/> </service>
<service name="File_system" label="report"> <parent label="report"/> </service>
<service name="Terminal"> <child name="terminal"/> </service>
<any-service> <parent/> </any-service>
</route>
</start>
</config>
''
Genode.Init.toXML initConfig
}
}

View File

@ -8,7 +8,7 @@ include_rules
: {objs} |> !prg |> %d {binary}
: {binary} |> !collect_bin |>
: ./pkg.dhall |> !render_runtime |> {runtime}
: ./pkg.dhall |> !render_runtime |>
include &(BIN_RULES)
include &(PKG_RULES)

View File

@ -7,10 +7,8 @@ let XML = Prelude.XML
in { indexInfo =
"Switched ethernet bus"
, runtime =
{ ram =
Genode.units.MiB 4
, caps =
96
{ resources =
{ ram = Genode.units.MiB 4, caps = 96 }
, binary =
"nic_bus"
, provides =