Compare commits

..

229 Commits

Author SHA1 Message Date
Jeremy Soller f1f98b4378
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2024-03-13 08:51:12 -06:00
Jeremy Soller 55991001ff
Update submodules 2024-03-13 08:51:07 -06:00
Jeremy Soller 30e701d357
Update cookbook 2024-03-08 14:13:27 -07:00
Jeremy Soller d29b44a473
Update relibc 2024-03-04 15:50:19 -07:00
Jeremy Soller 026a0ba855
Update cookbook 2024-03-04 15:48:47 -07:00
Jeremy Soller 7fc6893d22 Merge branch 'pkg-size' into 'master'
Add pkg-size script

See merge request redox-os/redox!1430
2024-03-03 20:02:52 +00:00
Ron Williams 06c0fe8e32 Add pkg-size script 2024-03-03 02:31:37 -08:00
Jeremy Soller 554a854c7d
Update cookbook, redoxfs, and relibc 2024-03-01 08:03:28 -07:00
Jeremy Soller 047035c5d1
Update cookbook and relibc 2024-02-28 10:44:44 -07:00
Jeremy Soller 9e0aabe157 Merge branch 'remove_mac_cfg_file' into 'master'
Remove /etc/net/mac

See merge request redox-os/redox!1429
2024-02-28 12:59:53 +00:00
bjorn3 477580b936 Remove /etc/net/mac
The mac address is now always fetched directly from the network card
2024-02-28 09:40:46 +01:00
Jeremy Soller 4cf64316b9 Add cosmic-files to demo 2024-02-15 17:36:23 -07:00
Jeremy Soller c1df502cae
Add boxedwine and nushell to Jeremy config 2024-02-15 16:10:13 -07:00
Jeremy Soller bd6d5538bd
Update submodules 2024-02-15 16:08:23 -07:00
Jeremy Soller e56e39cd0a
Update relibc 2024-02-12 15:09:50 -07:00
Jeremy Soller 2a8eb92c08 Merge branch 'update-goal' into 'master'
Update goals and improve the guide

See merge request redox-os/redox!1428
2024-02-12 20:07:06 +00:00
Ribbon 580869cdf4 Update goals and improve the guide 2024-02-12 16:47:27 +00:00
Jeremy Soller 1fd8fee0e5 Merge branch 'add-zstd' into 'master'
Add zstd to the bootstrap script

See merge request redox-os/redox!1427
2024-02-11 13:26:53 +00:00
Jeremy Soller 7cef4fe6a3 Update cookbook 2024-02-10 18:55:13 -07:00
mattmadeofpasta a54af76a08
Add zstd 2024-02-10 21:42:42 +00:00
Jeremy Soller 49f13e7b4d
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2024-02-10 14:28:37 -07:00
Jeremy Soller cdf31043e7
Update relibc 2024-02-10 14:28:32 -07:00
Jeremy Soller 1f93e814a9 Merge branch 'non-interactive-bootstrap' into 'master'
Bootstrap non-interactively

See merge request redox-os/redox!1424
2024-02-10 21:01:55 +00:00
Jeremy Soller 659dbb4a99 Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2024-02-10 10:40:02 -07:00
Jeremy Soller e3221aa0a8 Move bootloader to base template 2024-02-10 10:39:56 -07:00
Jeremy Soller be4db6b213 Merge branch 'fuse3-everywhere' into 'master'
Use `fusermount3` everywhere

See merge request redox-os/redox!1426
2024-02-10 15:01:28 +00:00
mattmadeofpasta 3f58996f32
Use fusermount3 everywhere 2024-02-10 13:19:27 +00:00
mattmadeofpasta 1575ef70b8
Bootstrap non-interactively 2024-02-10 09:59:39 +00:00
Jeremy Soller 0aec2332db
Update installer and cookbook 2024-02-07 20:04:53 -07:00
Jeremy Soller 48262cb7be
Move redoxer configs here and update installer 2024-02-07 19:44:26 -07:00
Jeremy Soller 308b540816
config/x86_64/ci.toml: add mednafen 2024-02-06 18:44:00 -07:00
Jeremy Soller bb818fb2e2 Update cookbook 2024-02-03 14:46:28 -07:00
Jeremy Soller 38246195e2 Update cookbook 2024-02-03 14:27:21 -07:00
Jeremy Soller f92559a63b Update relibc 2024-02-03 13:17:50 -07:00
Jeremy Soller 2ab7768d53
Update relibc 2024-02-02 15:43:31 -07:00
Jeremy Soller e2450b0fd3 Update cookbook 2024-01-30 18:55:22 -07:00
Jeremy Soller c959953e0a Use REPO_NONSTOP in ci.mk 2024-01-28 16:17:07 +00:00
Jeremy Soller 5b1dc1e8bc Merge branch 'remove_redox-release' into 'master'
Remove /etc/redox-release

See merge request redox-os/redox!1423
2024-01-26 23:27:04 +00:00
bjorn3 312df3a563 Remove /etc/redox-release
Screenfetch now understands /etc/os-release
2024-01-26 21:18:25 +01:00
Jeremy Soller d7493046d4
Update submodules 2024-01-26 11:02:56 -07:00
Jeremy Soller ea2b2ed1b8 Merge branch 'enable-nano' into 'master'
Enable GNU nano by default

See merge request redox-os/redox!1422
2024-01-26 17:29:28 +00:00
Ribbon 2f3f552300 Enable GNU nano by default 2024-01-26 17:29:28 +00:00
Jeremy Soller da8d585c5d Merge branch 'fix_os_release' into 'master'
Fix the format of /etc/os-release

See merge request redox-os/redox!1420
2024-01-26 17:29:01 +00:00
Jeremy Soller 0df9d7ba0f Merge branch 'less_qemu_logs' into 'master'
Only enable -d cpu_reset for qemu when debugging

See merge request redox-os/redox!1419
2024-01-26 17:28:06 +00:00
bjorn3 5c85210900 Fix the format of /etc/os-release
The os-release crate can't handle parsing the current format, and the
python example on the /etc/os-release man page suggests that it is
invalid to have a space before the equal sign.
2024-01-25 17:57:03 +01:00
bjorn3 69364ba176 Only enable -d cpu_reset for qemu when debugging
It is only useful when debugging and otherwise just throws a whole bunch
of logs on every boot.
2024-01-25 15:22:03 +01:00
Jeremy Soller 000f0c4573 Merge branch 'master' into 'master'
Fix Developer FAQ Link

See merge request redox-os/redox!1416
2024-01-21 13:23:12 +00:00
Michael Wang 0dee515449 Fix Developer FAQ Link 2024-01-21 03:46:48 +00:00
Jeremy Soller b97dbbbb5f
Update cookbook 2024-01-18 16:00:07 -07:00
Jeremy Soller 33b33c6c20
Update cookbook 2024-01-18 15:19:34 -07:00
Jeremy Soller 6a90ec33b4
Remove dead binutils project from demo image 2024-01-18 14:14:07 -07:00
Jeremy Soller d86341734d
Update cookbook 2024-01-18 14:11:55 -07:00
Jeremy Soller 51f42325ac
Update installer 2024-01-18 13:43:40 -07:00
Jeremy Soller 0cab163684
Update cookbook 2024-01-18 13:41:50 -07:00
Jeremy Soller 015d2d660a
Update relibc 2024-01-18 13:27:34 -07:00
Jeremy Soller 57d747503c
Update cookbook and relibc 2024-01-18 12:59:22 -07:00
Jeremy Soller 1912a0ec02
Update relibc 2024-01-17 13:24:18 -07:00
Jeremy Soller 41045a5406 Merge branch 'usr_lib_initd' into 'master'
Move a couple of missed init files from /etc/init.d to /usr/lib/init.d

See merge request redox-os/redox!1415
2024-01-17 15:10:16 +00:00
bjorn3 f4b4d34cf6 Move a couple of missed init files from /etc/init.d to /usr/lib/init.d 2024-01-17 14:31:32 +01:00
Jeremy Soller 46ba4e0ce3 Merge branch 'new-script' into 'master'
Add a script to show the branches and commit hashes of some recipe source

See merge request redox-os/redox!1414
2024-01-17 03:02:31 +00:00
Ribbon d3ec68dc87 Add a script to show the branches and commit hashes of some recipe source 2024-01-17 03:02:31 +00:00
Jeremy Soller bca6e2214d
Update relibc 2024-01-16 19:50:03 -07:00
Jeremy Soller 178db06610
Update cookbook and relibc 2024-01-14 19:01:57 -07:00
Jeremy Soller 6a110b7dbf
Update cookbook 2024-01-12 15:50:55 -07:00
Jeremy Soller df1c8b031b
Update relibc 2024-01-12 15:44:38 -07:00
Jeremy Soller 4fbc3b066e
Update cookbook 2024-01-12 15:17:00 -07:00
Jeremy Soller 80466e71b1
config/x86_64/ci.toml: enable shared-mime-info 2024-01-12 13:05:36 -07:00
Jeremy Soller 33769cd851 Allow any just version 2024-01-12 13:04:29 -07:00
Jeremy Soller 4d88760fbf
Update relibc 2024-01-12 12:21:32 -07:00
Jeremy Soller 421649353b
Update relibc 2024-01-12 12:06:05 -07:00
Jeremy Soller 3184bd8b13
Update relibc 2024-01-12 11:54:06 -07:00
Jeremy Soller 025b4d4514 config/x86_64/demo.toml: add shared-mime-info 2024-01-12 11:47:09 -07:00
Jeremy Soller d5b6877298 config/x86_64/jeremy.toml: add shared-mime-info 2024-01-12 11:45:55 -07:00
Jeremy Soller 6a628a73d3
Update relibc 2024-01-12 11:29:41 -07:00
Jeremy Soller 65cf92f73a
Update cookbook 2024-01-12 11:23:00 -07:00
Jeremy Soller af62d768cd Merge branch 'less_ci_deps' into 'master'
Reduce time to run CI

See merge request redox-os/redox!1413
2024-01-12 14:26:31 +00:00
bjorn3 aa7edc6ef1 Zstd compress all images
I tried gzip, bzip2, xz and xzstd. Xz 22s for a 128MB disk image. Out of
all other options zstd was both the fastest to compress (<1s) and
produced the smallest file (28MB).
2024-01-11 21:18:21 +01:00
Jeremy Soller 461cbcb423 Merge branch 'fix_ci' into 'master'
Fix CI

See merge request redox-os/redox!1408
2024-01-11 20:12:52 +00:00
Jeremy Soller 4d0eeb1bf4
config/i686/ci.toml: add vim 2024-01-11 12:04:53 -07:00
bjorn3 e91d78ce4b Use cargo binstall to save 1.5min on building various build deps 2024-01-11 19:50:31 +01:00
bjorn3 0ded7946d0 Remove unused system dependencies from CI config 2024-01-11 19:26:19 +01:00
bjorn3 8ea1cde8f6 Fix CI 2024-01-11 18:55:43 +01:00
Jeremy Soller dac858b84e
Default to using kvm when arch is i686 and host is x86_64 2024-01-11 09:55:54 -07:00
Jeremy Soller 4eb06c8e36
config/x86_64/jeremy.toml: fix duplicate package 2024-01-11 09:41:44 -07:00
Jeremy Soller efa4a9e70a
Update relibc 2024-01-11 09:41:25 -07:00
Jeremy Soller 07fde7b608 Merge branch 'backtrace' into 'master'
add backtrace script and improve config file instructions

See merge request redox-os/redox!1412
2024-01-11 15:59:48 +00:00
Ron Williams d9b0556e7b add backtrace script and improve config file instructions 2024-01-11 06:27:28 -08:00
Jeremy Soller 76d1ba2ad8
Do not recurse submodules in git pull 2024-01-10 14:09:06 -07:00
Jeremy Soller a67519dcf2
Update cookbook and installer 2024-01-10 13:50:34 -07:00
Jeremy Soller 17e3c17c73
Do not use prefix rustc to determine host target 2024-01-10 11:08:31 -07:00
Jeremy Soller 7de457e022
Ensure lib/rustlib/HOST_TARGET/lib exists in prefix tarballs 2024-01-10 09:53:13 -07:00
Jeremy Soller 45d5fce901 Merge branch 'fix_ci_pkg_set' into 'master'
Update ci.toml to build required packages for the demo

See merge request redox-os/redox!1411
2024-01-10 16:48:14 +00:00
bjorn3 30951f8ae1 Update ci.toml to build required packages for the demo 2024-01-10 17:00:09 +01:00
Jeremy Soller ac35d73a87
Update cookbook and installer 2024-01-10 08:57:24 -07:00
Jeremy Soller 5831c26aef Merge branch 'no_rust_submodule' into 'master'
Remove the rust submodule

Closes #1389

See merge request redox-os/redox!1409
2024-01-10 15:03:38 +00:00
Jeremy Soller d1c4270e10 Merge branch 'cookbook-gui-fix' into 'master'
update cookbook

See merge request redox-os/redox!1410
2024-01-10 14:19:18 +00:00
bjorn3 34acc9cb04 Don't checkout rust submodule by default
It is no longer necessary for regular builds as of the previous commit.
This will drastically improve the time it takes to do the initial clone
of redox.
2024-01-10 15:19:06 +01:00
Ron Williams f95cb00cd8 update cookbook 2024-01-10 06:07:26 -08:00
bjorn3 da380dd368 Don't rebuild lib/rustlib/src in the rust sysroot
The prebuilt tarball already contains it now
2024-01-09 11:05:06 +01:00
Jeremy Soller 238b445056
Update relibc 2024-01-08 20:35:30 -07:00
Jeremy Soller 4888505cdb
Update cookbook 2024-01-08 15:56:48 -07:00
Jeremy Soller 8406fed3cd
Update cookbook 2024-01-08 14:54:12 -07:00
Jeremy Soller c70bac9630
Update cookbook 2024-01-08 14:52:46 -07:00
Jeremy Soller d599690326
Update relibc 2024-01-08 14:43:48 -07:00
Jeremy Soller deb3fe9040
Update cookbook 2024-01-08 14:00:25 -07:00
Jeremy Soller 5bddaf4b78
Update cookbook 2024-01-08 11:52:24 -07:00
Jeremy Soller e757a57f72 Merge branch 'simplify_config_mk' into 'master'
Somewhat simplify config.mk

See merge request redox-os/redox!1407
2024-01-08 18:26:38 +00:00
bjorn3 5ce30e6da6 Somewhat simplify config.mk
* nproc exists on FreeBSD too
* REDOX_MAKE is generally make, so use that as default with per-OS
  override if necessary.
* HOST_TARGET can be fetched directly from rustc.
2024-01-08 19:24:14 +01:00
Jeremy Soller bb64eb8117 Merge branch 'os-release' into 'master'
Use the standard os-release instead of redox specific redox-release

See merge request redox-os/redox!1402
2024-01-08 18:23:52 +00:00
bjorn3 cf04f50d86 Use sparse files for the generated disk images on all OSes
Rather than just on macOS. This can save quite a bit of space depending
on the amount of free space on the root filesystem of the disk image.
2024-01-08 19:09:51 +01:00
bjorn3 4cab6ca334 Use the standard os-release instead of redox specific redox-release
This allows programs not specifically written for Redox OS to discover
information about the OS it is running on.
2024-01-08 18:17:30 +01:00
Jeremy Soller f04bb44e55 Merge branch 'clear_tmp_on_boot' into 'master'
Clear /tmp when booting

See merge request redox-os/redox!1403
2024-01-08 16:16:55 +00:00
bjorn3 fc4a6d43c6 Add uutils to base 2024-01-08 17:11:22 +01:00
Jeremy Soller 9944576af5
Update cookbook 2024-01-08 09:09:06 -07:00
Jeremy Soller 3011b75132 Merge branch 'usr_lib_initd' into 'master'
Move all system init configs to /usr/lib/init.d

See merge request redox-os/redox!1404
2024-01-08 16:02:11 +00:00
Jeremy Soller 09f4e110a1
Update relibc 2024-01-08 09:00:30 -07:00
bjorn3 5887119311 Move all system init configs to /usr/lib/init.d
This keeps /etc/init.d for local overrides without risking them getting
overwritten by system updates.
2024-01-07 18:15:34 +01:00
Jeremy Soller 1f49ccaee3 scripts/dual-boot.sh: fix bootloader path 2024-01-07 08:28:48 -07:00
bjorn3 52a3aa4980 Clear /tmp when booting
This matches the behavior of most UNIX systems and ensures that the disk
doesn't eventually fills entirely with unused temporary files.
2024-01-06 18:47:35 +01:00
Jeremy Soller 161788988c Merge branch 'swap_usrmerge' into 'master'
Make /{bin,lib,share,include} a symlink to /usr/{bin,lib,share,include}

See merge request redox-os/redox!1400
2024-01-06 17:12:29 +00:00
bjorn3 21561d1642 Make /{bin,lib,share,include} a symlink to /usr/{bin,lib,share,include}
This matches the directory layout of modern Linux systems.
2024-01-06 18:01:51 +01:00
Jeremy Soller d7e3bc0b87 Merge branch 'installer_groups' into 'master'
Move /etc/group generation to the installer

See merge request redox-os/redox!1401
2024-01-06 16:56:54 +00:00
bjorn3 a17c81df0c Move /etc/group generation to the installer
This ensures that the gid's for the auto-generated user groups stay in
sync with the gid in /etc/passwd. It also makes it easier to evolve the
format of /etc/group in the future.
2024-01-06 17:56:11 +01:00
Jeremy Soller d82216bcca
Update relibc 2024-01-05 12:28:27 -07:00
Jeremy Soller a1a0a7318d Merge branch 'tty-config' into 'master'
add /dev/tty and other libc: links

See merge request redox-os/redox!1399
2024-01-05 19:28:01 +00:00
Ron Williams 0a739ba2a4 add /dev/tty and other libc: links 2024-01-05 06:27:09 -08:00
Jeremy Soller 42ddca03c4
Use desktop template for jeremy configs 2024-01-04 14:10:10 -07:00
Jeremy Soller d3b13b4c9d
Update cookbook 2024-01-04 13:47:44 -07:00
Jeremy Soller 4d202c47cc
Adapt desktop-contain to use templates 2024-01-04 13:46:01 -07:00
Jeremy Soller 96044654b0
Template for dev 2024-01-04 13:43:32 -07:00
Jeremy Soller bbb147cdba
Use desktop template as base for demo configs 2024-01-04 13:40:42 -07:00
Jeremy Soller c54bfd99ce
Make template desktop and server configs 2024-01-04 13:40:31 -07:00
Jeremy Soller 275b9065f5
Remove broken aarch64 configs 2024-01-04 13:29:42 -07:00
Jeremy Soller 8f51fda66e
Move some init into net.toml 2024-01-04 13:27:25 -07:00
Jeremy Soller 72365aca16
Move escalated, ipcd, and ptyd to base 2024-01-04 13:15:16 -07:00
Jeremy Soller 0b737f0a0f
Use templates for acid, desktop-minimal, resist, server-minimal 2024-01-04 12:25:27 -07:00
Jeremy Soller 0427420717
Use installer to resolve filesystem size 2024-01-04 12:22:43 -07:00
Jeremy Soller e75d6a3796
Update installer 2024-01-04 12:18:54 -07:00
Jeremy Soller 13a3953bcd
Update installer 2024-01-04 11:58:32 -07:00
Jeremy Soller d7573cb074
Update installer 2024-01-04 11:55:04 -07:00
Jeremy Soller 7ff5b1bd30
Use template for all server-minimal configs 2024-01-04 11:45:40 -07:00
Jeremy Soller 0811cf7246
Two missing removals 2024-01-04 11:41:17 -07:00
Jeremy Soller 03ed74d02c
Move group configuration to base 2024-01-04 11:40:24 -07:00
Jeremy Soller bc36226dd7
Move user configuration to base 2024-01-04 11:36:45 -07:00
Jeremy Soller 297153b19c
Move boostrap, initfs, kernel to base 2024-01-04 11:23:14 -07:00
Jeremy Soller a0e7ff99df
Add net config template 2024-01-04 11:08:53 -07:00
Jeremy Soller 28f04a167a
Update cookbook 2024-01-04 08:39:21 -07:00
Jeremy Soller 18d968ea83 Merge branch 'config_include' into 'master'
Use the new config include functionality for creating the base system files

See merge request redox-os/redox!1398
2024-01-04 15:24:17 +00:00
Jeremy Soller 548d7a8775
Update installer 2024-01-04 08:24:05 -07:00
bjorn3 d130e9f73c Use the new config include functionality for creating the base system files 2024-01-04 15:31:44 +01:00
bjorn3 3c6aa4fff9 Finalize move of games from /games to /usr/games 2024-01-03 21:51:37 +01:00
Jeremy Soller c910e7c358
Update cookbook 2024-01-03 13:09:00 -07:00
Jeremy Soller 745b6da860
Update relibc 2024-01-03 13:02:59 -07:00
Jeremy Soller 618ec56e0e
Update cookbook 2024-01-03 12:29:07 -07:00
Jeremy Soller 83e90a64d5
Update installer, redoxfs, relibc 2024-01-03 12:27:13 -07:00
Jeremy Soller 27c3d69aed Merge branch 'sparse_extra' into 'master'
Use sparse allocation of extra.img on Linux too

See merge request redox-os/redox!1391
2024-01-03 19:23:46 +00:00
Jeremy Soller 17271e73dd Merge branch 'contain' into 'master'
Add desktop-contain.toml

See merge request redox-os/redox!1394
2024-01-03 19:22:34 +00:00
Ron Williams 3619030bd1 Add desktop-contain.toml 2024-01-03 19:22:34 +00:00
Jeremy Soller f8e6c534c8 Merge branch 'category-script' into 'master'
Add script to run make targets in a recipe category

See merge request redox-os/redox!1393
2024-01-03 19:20:35 +00:00
Ron Williams 5813905973 Add script to run make targets in a recipe category 2024-01-03 19:20:35 +00:00
Jeremy Soller e123e7a5aa
Update cookbook and relibc 2024-01-03 12:16:43 -07:00
Jeremy Soller 90e6204280 Merge branch 'ribbon-scripts' into 'master'
add nonstop, uc and ucf to build, plus scripts include-recipes.sh and show-package.sh

See merge request redox-os/redox!1396
2024-01-03 19:15:30 +00:00
Ron Williams 6258becc3c add nonstop, uc and ucf to build, plus scripts include-recipes.sh and show-package.sh 2024-01-03 19:15:30 +00:00
Jeremy Soller 4598a164df
Update relibc 2024-01-03 09:46:22 -07:00
Jeremy Soller dc4f61cc8e Merge branch 'podman-cbindgen' into 'master'
add cbindgen to Podman build

See merge request redox-os/redox!1392
2023-12-17 23:00:29 +00:00
Ron Williams 54cb2ecf26 add cbindgen to Podman build 2023-12-17 14:39:01 -08:00
Jeremy Soller e1b238d078 Merge branch 'ivan/config' into 'master'
add raspi3b config

See merge request redox-os/redox!1390
2023-12-17 11:59:06 +00:00
bjorn3 ffd64a8703 Use sparse allocation of extra.img on Linux too
fallocate immediately allocates the full size of the file, even though
it likely won't end up being used.
2023-12-17 12:44:32 +01:00
Ivan Tan 097c6876bf add raspi3b config 2023-12-17 10:16:42 +08:00
Jeremy Soller 2be98db644 ci: disable jansson 2023-12-16 09:54:47 -07:00
Jeremy Soller 1afef4aef0 Merge branch 'ivan/board_var' into 'master'
aarch64: support building Redox for different motherboard.

See merge request redox-os/redox!1388
2023-12-15 23:18:38 +00:00
Jeremy Soller e5ff3c59c7 Merge branch 'cbindgen' into 'master'
Add checks and install cbindgen in bootstrap.sh.

See merge request redox-os/redox!1389
2023-12-15 23:15:20 +00:00
4lDO2 e3013ac40b
Add checks and install cbindgen in bootstrap.sh. 2023-12-14 15:32:54 +01:00
Ivan Tan 584e6fb548 aarch64: support building Redox for different motherboard. 2023-12-14 12:29:20 +00:00
Jeremy Soller 2dadc977e7 Merge branch 'improve-errors-in-bootstrap-scripts' into 'master'
Improve errors in bootstrap scripts

See merge request redox-os/redox!1387
2023-12-14 05:12:06 +00:00
Jeremy Soller d5318bccf1
Update cookbook 2023-12-13 15:54:31 -07:00
Jeremy Soller 5121c47bb2
Update cookbook and installer 2023-12-13 14:41:50 -07:00
Jeremy Soller fb1478d9bf
Replace rebuild-recipe with make cr.recipe and make ucr.recipe 2023-12-13 14:41:38 -07:00
mattmadeofpasta cb42d21c64
Improve errors in bootstrap scripts 2023-12-13 20:51:55 +00:00
Jeremy Soller 7bec121856
Fix clean prefix build 2023-12-13 12:10:42 -07:00
Jeremy Soller 979933b739
Update cookbook 2023-12-12 19:49:21 -07:00
Jeremy Soller 79f359fe75
Update cookbook 2023-12-12 14:12:21 -07:00
Jeremy Soller 8c1f0a88d5
Add more ABI versions to CI packages 2023-12-12 13:56:45 -07:00
Jeremy Soller 89749d3722
Copy relibc source to prefix to prevent problems when running multiple arch builds at once 2023-12-12 13:49:45 -07:00
Jeremy Soller 8dbb328ca2
Update installer and redoxfs 2023-12-12 13:49:11 -07:00
Jeremy Soller 5fa75583b9
Update cookbook 2023-12-12 13:20:42 -07:00
Jeremy Soller 06a60d2e38
Update installer and redoxfs 2023-12-12 11:12:05 -07:00
Jeremy Soller 7e26a335b4
Update cookbook 2023-12-12 10:12:47 -07:00
Jeremy Soller dbe65587c0
Add more API versions to packages 2023-12-12 09:21:37 -07:00
Jeremy Soller 2bbb7eabb0
Update submodules 2023-12-12 09:21:28 -07:00
Jeremy Soller b865c04adc
Adjust package names after API separation 2023-12-12 08:14:27 -07:00
Jeremy Soller 71406afe4f
Adjust i686 qemu parameters and allow kvm to be specified 2023-12-12 08:06:12 -07:00
Jeremy Soller 9552a1cc67
Fix kernel symbols path 2023-12-12 08:05:51 -07:00
Jeremy Soller 224b703802
config/i686/demo.toml: increase filesystem size to 512MiB 2023-12-12 08:05:35 -07:00
Jeremy Soller 5ccaab791d
Update submodules 2023-12-12 08:05:13 -07:00
Jeremy Soller 24ef509a8a
Update cookbook 2023-12-11 09:50:40 -07:00
Jeremy Soller 31d3c828fa
Remove fuse from ubuntu depends 2023-12-11 09:50:08 -07:00
Jeremy Soller b8ca11658d Merge branch 'add-missing-debian-packages' into 'master'
Add missing debian packages

See merge request redox-os/redox!1386
2023-12-11 16:47:03 +00:00
mattmadeofpasta ec394f1dcb
Add missing debian packages 2023-12-11 16:32:24 +00:00
Jeremy Soller d2f3c5bd44
Update cookbook and relibc 2023-12-11 09:10:47 -07:00
Jeremy Soller fc90fb9e0d Merge branch 'ivan/raspi3bp' into 'master'
add command to support qemu-arm64 and qemu-raspi3b

See merge request redox-os/redox!1385
2023-12-11 16:08:52 +00:00
Jeremy Soller 1d7c4b297f Merge branch 'fix-links' into 'master'
Add new sections and fix a hyperlink

See merge request redox-os/redox!1384
2023-12-11 16:06:09 +00:00
Ivan Tan 636df55a51 add command to support qemu-arm64 and qemu-raspi3b 2023-12-08 23:51:12 +08:00
Ribbon a97ad2229b Add new sections and fix a hyperlink 2023-12-07 20:01:51 +00:00
Jeremy Soller 8171a4598c
Update submodules 2023-12-07 08:46:05 -07:00
Jeremy Soller a53db94ffa Merge branch 'fix_desktop_minimal_config' into 'master'
Fix orbital startup for the desktop-minimal config

See merge request redox-os/redox!1383
2023-12-07 15:41:49 +00:00
Jeremy Soller b1447312e0 Merge branch 'add-just' into 'master'
Add `just` to the build dependencies

See merge request redox-os/redox!1382
2023-12-07 15:36:14 +00:00
Jeremy Soller ba1fb3bcee Merge branch 'simplify-contributing' into 'master'
Improve and cleanup the CONTRIBUTING

See merge request redox-os/redox!1381
2023-12-07 15:35:26 +00:00
bjorn3 ecadeac063 Fix orbital startup for the desktop-minimal config 2023-11-29 14:41:54 +01:00
mattmadeofpasta b86622d73b
Add `just` to the build dependencies 2023-11-23 21:40:00 +00:00
Ribbon 5a12caef3a Improve and cleanup the CONTRIBUTING 2023-11-18 22:45:35 +00:00
Jeremy Soller 15d94b2fd6
Add cosmic-icons and intel-one-mono to jeremy config 2023-11-15 16:11:12 -07:00
Jeremy Soller 72fe19c323
Include intel-one-mono font in demo image 2023-11-15 15:58:56 -07:00
Jeremy Soller f61eb6af3b
Update cookbook 2023-11-15 15:56:35 -07:00
Jeremy Soller 65037a0495
Install icons in demo image 2023-11-15 15:34:28 -07:00
Jeremy Soller 7376420240
Move cosmic-edit from desktop to demo 2023-11-15 14:53:57 -07:00
Jeremy Soller c6ee5673d7
Rename games to redox-games 2023-11-15 12:52:00 -07:00
Jeremy Soller 88e792a70f
Update cookbook 2023-11-15 11:16:29 -07:00
Jeremy Soller a76f96c5cf
Update cookbook 2023-11-15 10:30:27 -07:00
Jeremy Soller 3e9464c936
Add cosmic-edit to jeremy config 2023-11-15 10:29:12 -07:00
Jeremy Soller 8df4c8b4b8
Update submodules 2023-11-15 10:28:36 -07:00
Jeremy Soller 008bb5c4c4 Merge branch 'disable-wget-progress-bar' into 'master'
Disable the wget progress bar in CI

See merge request redox-os/redox!1377
2023-11-15 17:23:51 +00:00
Jeremy Soller 84a93e472f Merge branch 'ybalrid-hardware' into 'master'
Add ASUS ROG g55vw to HARDWARE.md

See merge request redox-os/redox!1378
2023-11-15 17:23:22 +00:00
Arthur Brainville 3f4b2b1082 Add ASUS ROG g55vw to HARDWARE.md 2023-11-15 17:23:22 +00:00
Jeremy Soller 24f984e606 Merge branch 'improve-hardware' into 'master'
Improve HARDWARE.md

See merge request redox-os/redox!1379
2023-11-15 17:23:01 +00:00
Jeremy Soller d795bd2954 Merge branch 'fix_make_gdb' into 'master'
Fix kernel sym path in make gdb.

See merge request redox-os/redox!1380
2023-11-15 17:21:17 +00:00
4lDO2 6b60e3e95b
Fix kernel sym path in make gdb. 2023-11-14 17:30:11 +01:00
Ribbon 7c74b327c5 Improve HARDWARE.md 2023-11-12 02:18:01 +00:00
mattmadeofpasta 315f5e8c43
Disable the wget progress bar in CI 2023-11-10 18:00:18 +00:00
74 changed files with 1571 additions and 4762 deletions

View File

@ -5,6 +5,8 @@ variables:
GIT_SUBMODULE_STRATEGY: "recursive" GIT_SUBMODULE_STRATEGY: "recursive"
before_script: before_script:
# Disable the wget progress bar
- echo 'show-progress = off' >> ~/.wgetrc
- | - |
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
apt-get update -qq && apt-get update -qq &&
@ -12,28 +14,25 @@ before_script:
bison \ bison \
build-essential \ build-essential \
curl \ curl \
dosfstools \
flex \ flex \
fuse \ fuse3 \
genisoimage \
git \ git \
gnupg \
libfuse-dev \ libfuse-dev \
nasm \ nasm \
parted \
pkg-config \ pkg-config \
software-properties-common \
syslinux \
syslinux-utils \
texinfo \ texinfo \
wget && wget \
zstd &&
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
img: img:
script: script:
- | - |
source "$HOME/.cargo/env" && source "$HOME/.cargo/env" &&
cargo install --version 0.1.1 cargo-config && curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash &&
cargo binstall --no-confirm --version 0.1.1 cargo-config &&
cargo binstall --no-confirm --version 1.16.0 just &&
cargo binstall --no-confirm --version 0.26.0 cbindgen &&
cargo build --manifest-path installer/Cargo.toml --release && cargo build --manifest-path installer/Cargo.toml --release &&
make ci-img IMG_TAG=$CI_COMMIT_REF_NAME REPO_BINARY=1 make ci-img IMG_TAG=$CI_COMMIT_REF_NAME REPO_BINARY=1
artifacts: artifacts:

1
.gitmodules vendored
View File

@ -10,6 +10,7 @@
path = rust path = rust
url = https://gitlab.redox-os.org/redox-os/rust.git url = https://gitlab.redox-os.org/redox-os/rust.git
branch = redox-2023-09-07 branch = redox-2023-09-07
update = none
[submodule "redoxfs"] [submodule "redoxfs"]
path = redoxfs path = redoxfs
url = https://gitlab.redox-os.org/redox-os/redoxfs.git url = https://gitlab.redox-os.org/redox-os/redoxfs.git

View File

@ -1,6 +1,8 @@
# Contributing to Redox # Contributing to Redox
_**Thank you for your interest in contributing to Redox!** This document will outline the basics of where to start if you wish to contribute to the project. There are many ways to help us out and and we appreciate all of them. We look forward to **your contribution**!_ **Thank you for your interest in contributing to Redox!**
This document will outline the basics of where to start if you wish to contribute to the project. There are many ways to help us out and and we appreciate all of them. We look forward to **your contribution!**
## Code Of Conduct ## Code Of Conduct
@ -8,132 +10,132 @@ We follow the [Rust Code Of Conduct](https://www.rust-lang.org/policies/code-of-
## License ## License
In general, your contributions to Redox are governed by the MIT License. Each project repository has a LICENSE file that provides the license terms for that project. In general, your contributions to Redox are governed by the [MIT License](https://en.wikipedia.org/wiki/MIT_License). Each project repository has a `LICENSE` file that provides the license terms for that project.
Please review the LICENSE for the project you are contributing to. Please review the LICENSE for the project you are contributing to.
- [Our Philosophy](https://doc.redox-os.org/book/ch01-02-philosophy.html) On [this](https://doc.redox-os.org/book/ch01-02-philosophy.html) page we explain why we use the MIT license.
## Chat ## Chat
Join us on [Matrix Chat](https://doc.redox-os.org/book/ch13-01-chat.html) to discuss issues or ask questions. Join us on [Matrix Chat](https://doc.redox-os.org/book/ch13-01-chat.html) to discuss issues or ask questions.
## Suggestions for Contributions ## Important Places to Contribute
(Before start to contribute you **must** read the [FAQ](https://www.redox-os.org/faq/) and the [Book](https://doc.redox-os.org/book/)) (Before starting to contribute you **must** read the [FAQ](https://www.redox-os.org/faq/) and the [Redox Book](https://doc.redox-os.org/book/))
You can contribute to Redox documentation/code on these repositories: You can contribute to the Redox documentation and code on these repositories:
(The order is based on difficulty, easy things first) (The order is based on difficulty, easy things first)
- [Website](https://gitlab.redox-os.org/redox-os/website) - [Website](https://gitlab.redox-os.org/redox-os/website)
- [Book](https://gitlab.redox-os.org/redox-os/book) - [Book](https://gitlab.redox-os.org/redox-os/book) - High-level documentation
- [Main Repository (build system/config)](https://gitlab.redox-os.org/redox-os/redox) - [Build System Configuration](https://gitlab.redox-os.org/redox-os/redox) - Our main repository
- [Cookbook (all system components/ported software)](https://gitlab.redox-os.org/redox-os/cookbook) - [Cookbook](https://gitlab.redox-os.org/redox-os/cookbook) - Ports system
- [Redox C Library](https://gitlab.redox-os.org/redox-os/relibc) - [Orbital](https://gitlab.redox-os.org/redox-os/orbital) - Display server and window manager
- [Drivers](https://gitlab.redox-os.org/redox-os/drivers) - [Package Manager](https://gitlab.redox-os.org/redox-os/pkgutils)
- [relibc](https://gitlab.redox-os.org/redox-os/relibc) - Redox C Library
- [Drivers](https://gitlab.redox-os.org/redox-os/drivers) - Device daemons
- [Kernel](https://gitlab.redox-os.org/redox-os/kernel) - [Kernel](https://gitlab.redox-os.org/redox-os/kernel)
### Important Places to Contribute ### Skill Levels
If you're not fluent in Rust: If you aren't fluent in Rust:
- Write documentation - Write documentation
- Use/test Redox, filing issues for bugs and needed features (verify the GitLab issues before) - Use and test Redox, fill issues for bugs or needed features (please verify the repository issues before)
- Web development ([Redox website](https://gitlab.redox-os.org/redox-os/website)) - Web development on the website (we don't accept JavaScript code)
- Write unit tests (may require minimal knowledge of Rust) - Write unit tests (may require minimal knowledge of Rust)
If you are fluent in Rust, but not OS Development: If you are fluent in Rust, but not operating system Development:
- Port applications written in Rust to Redox (missing support on relibc will make patches dirty) - Improve the Orbital display server and window manager.
- Rewritten-in-Rust libc ([relibc](https://gitlab.redox-os.org/redox-os/relibc)) - Port programs written in Rust to Redox (in most cases you need to port crates, be aware of missing functions on relibc, porting without these functions will make patches dirty)
- Shell ([Ion](https://gitlab.redox-os.org/redox-os/ion)) - Improve the program compatibility in relibc
- Package Manager ([pkgutils](https://gitlab.redox-os.org/redox-os/pkgutils)) - Improve the package manager
- Improve the [Ion](https://gitlab.redox-os.org/redox-os/ion) shell
If you are fluent in Rust, and have experience with OS Dev: If you are fluent in Rust, and have experience with operating system development:
- Familiarize yourself with the repository and codebase - Familiarize yourself with the repository and code
- Grep for `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME` and fix the code you find - Grep for `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME` and fix the code you find
- Update older code to remove warnings - Update old code to remove warnings
- Improve and optimize code, especially in the kernel - Improve and optimize code, especially in the kernel
- Write drivers - Write device drivers
For those who want to contribute to the Redox GUI, our GUI strategy has recently changed. For those who want to contribute to the Redox GUI, our GUI strategy has recently changed.
- OrbTk is now sunsetting, and its developers have moved to other projects such as the ones below. There is currently no Redox-specific GUI development underway. - We are improving the [Orbital](https://gitlab.redox-os.org/redox-os/orbital) display server and window manager, you can read more about it on [this](https://gitlab.redox-os.org/redox-os/redox/-/issues/1430) tracking issue.
- Redox is in the process of adopting other Rust-lang GUIs such as [Iced](https://iced.rs) and [Slint](https://slint-ui.com/). Please check out those projects if this is your area of interest. - Redox is in the process of adopting other Rust-written GUI toolkits, such as [Iced](https://iced.rs) and [Slint](https://slint-ui.com/). Please check out those projects if this is your area of interest.
- OrbTk is in maintenance mode, and its developers have moved to other projects such as the ones below. There is currently no Redox-specific GUI development underway.
## Tracking Issues ## Tracking Issues Index
We use tracking issues to ease the development workflow, you can find them on this page: We use an index to track the development priorities, you can find them on [this](https://gitlab.redox-os.org/redox-os/redox/-/issues/1384) page.
- [Tracking issues index](https://gitlab.redox-os.org/redox-os/redox/-/issues/1384)
## Build System ## Build System
You can find the Redox build system organization and commands on this page: You can find the Redox build system organization and commands on [this](https://doc.redox-os.org/book/ch08-06-build-system-reference.html) page.
- [Build System Quick Reference](https://doc.redox-os.org/book/ch08-06-build-system-reference.html)
## Porting Software
You can read how to use the Cookbook recipe system to port applications on this page:
- [Porting Applications Using Recipes](https://doc.redox-os.org/book/ch09-03-porting-applications.html)
## Developer FAQ ## Developer FAQ
You can see the most common questions and problems on this page: You can see the most common questions and problems on [this](https://doc.redox-os.org/book/ch09-07-developer-faq.html) page.
- [Develper FAQ](https://doc.redox-os.org/book/ch09-05-developer-faq.html) ## Porting Software
You can read how to use the Cookbook recipe system to port applications on [this](https://doc.redox-os.org/book/ch09-03-porting-applications.html) page.
## Libraries and APIs
You can read [this](https://doc.redox-os.org/book/ch09-06-libraries-apis.html) page to learn about the libraries and APIs used in Redox.
## Development Tips ## Development Tips
You can find important tips on this section: You can find important tips on [this](https://doc.redox-os.org/book/ch09-02-coding-and-building.html#development-tips) section.
- [Development Tips](https://doc.redox-os.org/book/ch09-02-coding-and-building.html#development-tips) ## References
We maintain a list of wikis, articles and videos to learn Rust, OS development and computer science on [this](https://doc.redox-os.org/book/ch09-08-references.html) page.
If you are skilled there's a possibility that they could improve your knowledge in some way.
## Best Practices and Guidelines ## Best Practices and Guidelines
- [Best Practices](https://doc.redox-os.org/book/ch11-00-best-practices.html) You can read the best practices and guidelines on [this](https://doc.redox-os.org/book/ch11-00-best-practices.html) chapter.
## Style Guidelines ## Style Guidelines
### Rust ### Rust
Since **Rust** is a relatively small and new language compared to others like _C_, there's really only one standard. Just follow the official Rust standards for formatting, and maybe run `rustfmt` on your changes, until we setup the CI system to do it automatically. Since **Rust** is a relatively small and new language compared to others like C and C++, there's really only one standard. Just follow the official Rust standards for formatting, and maybe run `rustfmt` on your changes, until we setup the CI system to do it automatically.
### Git ### Git
Please follow our [Git style for pull requests](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html). Please follow our [Git style](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html) for pull requests.
## GitLab ## GitLab
### Issues ### Issues
You will need to have a Redox GitLab account to file an issue, and registration can take a few days. To know how to create issues on the Redox GitLab, read [this](https://doc.redox-os.org/book/ch12-05-filing-issues.html) page.
- [Redox Book Guide](https://doc.redox-os.org/book/ch12-05-issues.html)
### Pull Requests ### Pull Requests
Please follow our process for [creating proper pull requests](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html). Please follow [our process](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html) for creating proper pull requests.
## External Links
- [redox-os.org](https://redox-os.org)
- [rust-os-comparison](https://github.com/flosse/rust-os-comparison)
- [rust-lang.org](http://rust-lang.org)
## Other Ways to Contribute ## Other Ways to Contribute
If you're not big on coding, but you still want to help keep the project going, you can still contribute/support in a variety of ways! We'll try to find a way to use anything you have to offer. If you aren't good on coding, but you still want to help keep the project going, you can contribute and support in a variety of ways! We'll try to find a way to use anything you have to offer.
### Design ### Design
If you're a good designer, whether it's _2D graphics, 3D graphics, interfaces, web design, you can help. We need logos, UI design, UI skins, app icons, desktop backgrounds, etc_. More information to come on this in the future, for now just join the [Chat](https://doc.redox-os.org/book/ch13-01-chat.html) and ask about graphic design. If you're a good designer, whether it's 2D graphics, 3D graphics, interfaces, web design, you can help. We need logos, UI design, UI skins, app icons, desktop backgrounds, etc.
- [Redox backgrounds](https://gitlab.redox-os.org/redox-os/backgrounds) - You can send your wallpapers on this repository.
- [Redox assets](https://gitlab.redox-os.org/redox-os/assets) - You can send your logos, icons and themes on this repository.
If you have questions about the graphic design, ask us on the [Chat](https://doc.redox-os.org/book/ch13-01-chat.html).
### Donate to Redox ### Donate to Redox
If you are interested in donating to the Redox OS nonprofit, you can find instructions [here](https://www.redox-os.org/donate/). If you are interested in donating to the Redox OS Nonprofit, you can find instructions [here](https://www.redox-os.org/donate/).

View File

@ -31,10 +31,13 @@ This document tracks the current hardware compatibility of Redox.
## General ## General
Due to incomplete USB support, desktops are generally not recommended. This section cover things to consider.
- USB support is incomplete. - ACPI support is incomplete (some things are hardcoded on the kernel)
- Wireless networking is not supported. - USB support is incomplete (desktops are generally not recommended)
- Wi-Fi is not supported
- GPU drivers aren't supported (only VESA and GOP)
- Automatic operating system discovery on boot loader is not implemented (remember this before installing Redox)
## Template ## Template
@ -152,6 +155,19 @@ Image date - 11-11-2022
- No audio, HDA driver cannot find output pins - No audio, HDA driver cannot find output pins
``` ```
- **ASUS ROG g55vw**
```
Satus - Booting
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2023
- Booted using BIOS
- Boots to desktop
- UEFI panic in SETUP
```
### Lenovo ### Lenovo
- **Lenovo IdeaPad Y510P** - **Lenovo IdeaPad Y510P**
@ -289,6 +305,22 @@ If you have a customized computer, put it here.
Computers using a 64 bits ARM CPU. Computers using a 64 bits ARM CPU.
### Raspberry Pi
- **Raspberry Pi 3 Model B+**
```
Status - Booting
Redox version - 0.8.0
Variant - server
Image date - None
- Booted using Uboot
- Boots to UART serial console
- a bcm2835-sdhci/mmc driver
- pl011 UART
```
### Custom ### Custom
If you have a customized ARM board, put it here. If you have a customized ARM board, put it here.

View File

@ -51,7 +51,7 @@ else
endif endif
pull: pull:
git pull --recurse-submodules git pull
git submodule sync --recursive git submodule sync --recursive
git submodule update --recursive --init git submodule update --recursive --init
@ -90,7 +90,7 @@ else
endif endif
gdb: FORCE gdb: FORCE
gdb cookbook/recipes/kernel/build/kernel.sym --eval-command="target remote localhost:1234" gdb cookbook/recipes/core/kernel/target/$(TARGET)/build/kernel.sym --eval-command="target remote localhost:1234"
# An empty target # An empty target
FORCE: FORCE:

View File

@ -21,7 +21,7 @@ You can find the most important pages below:
- [Trying Out Redox](https://doc.redox-os.org/book/ch02-04-trying-out-redox.html) - [Trying Out Redox](https://doc.redox-os.org/book/ch02-04-trying-out-redox.html)
- [Building Redox](https://doc.redox-os.org/book/ch02-05-building-redox.html) - [Building Redox](https://doc.redox-os.org/book/ch02-05-building-redox.html)
- [Build System Documentation](https://doc.redox-os.org/book/ch08-06-build-system-reference.html) - [Build System Documentation](https://doc.redox-os.org/book/ch08-06-build-system-reference.html)
- [Developer FAQ](https://doc.redox-os.org/book/ch09-05-developer-faq.html) - [Developer FAQ](https://doc.redox-os.org/book/ch09-07-developer-faq.html)
- [Chat/Discussions/Help](https://doc.redox-os.org/book/ch13-01-chat.html) - [Chat/Discussions/Help](https://doc.redox-os.org/book/ch13-01-chat.html)
## Ecosystem ## Ecosystem

View File

@ -1,5 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e
########################################################## ##########################################################
# This function is simply a banner to introduce the script # This function is simply a banner to introduce the script
########################################################## ##########################################################
@ -92,10 +94,14 @@ osx_macports()
install_macports_pkg "git" install_macports_pkg "git"
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
install_macports_pkg "qemu" "qemu-system-x86_64" install_macports_pkg "qemu" "qemu-system-x86_64"
else elif [ "$1" == "virtualbox" ]; then
install_macports_pkg "virtualbox" install_macports_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi fi
install_macports_pkg "coreutils" install_macports_pkg "coreutils"
@ -161,10 +167,14 @@ osx_homebrew()
install_brew_pkg "git" install_brew_pkg "git"
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
install_brew_pkg "qemu" "qemu-system-x86_64" install_brew_pkg "qemu" "qemu-system-x86_64"
else elif [ "$1" == "virtualbox" ]; then
install_brew_pkg "virtualbox" install_brew_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi fi
install_brew_pkg "automake" install_brew_pkg "automake"
@ -221,18 +231,21 @@ osx_homebrew()
############################################################################### ###############################################################################
freebsd() freebsd()
{ {
set -xe set -x
echo "FreeBSD detected!" echo "FreeBSD detected!"
echo "Installing missing packages..." echo "Installing missing packages..."
install_freebsd_pkg "git" install_freebsd_pkg "git"
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
install_freebsd_pkg "qemu" "qemu-system-x86_64" install_freebsd_pkg "qemu" "qemu-system-x86_64"
else elif [ "$1" == "virtualbox" ]; then
install_freebsd_pkg "virtualbox" install_freebsd_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi fi
install_freebsd_pkg "coreutils" install_freebsd_pkg "coreutils"
install_freebsd_pkg "findutils" install_freebsd_pkg "findutils"
install_freebsd_pkg "gcc" install_freebsd_pkg "gcc"
@ -277,16 +290,24 @@ freebsd()
install_freebsd_pkg "scons" install_freebsd_pkg "scons"
install_freebsd_pkg "lua54" install_freebsd_pkg "lua54"
install_freebsd_pkg "py-protobuf-compiler" install_freebsd_pkg "py-protobuf-compiler"
set +xe set +x
} }
############################################################################### ###############################################################################
# This function takes care of installing all dependencies for building Redox on # This function takes care of installing all dependencies for building Redox on
# Arch Linux # Arch Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu" # @params: $1 the emulator to install, "virtualbox" or "qemu"
# $2 install non-interactively, boolean
############################################################################### ###############################################################################
archLinux() archLinux()
{ {
noninteractive=$2
pacman_install="pacman -S --needed"
if [ "$noninteractive" = true ]; then
pacman_install+=" --noconfirm"
fi
echo "Detected Arch Linux" echo "Detected Arch Linux"
packages="cmake \ packages="cmake \
fuse \ fuse \
@ -330,12 +351,15 @@ archLinux()
lua \ lua \
ant \ ant \
protobuf" protobuf"
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
packages="$packages qemu" packages="$packages qemu"
elif [ "$1" == "virtualbox" ]; then elif [ "$1" == "virtualbox" ]; then
packages="$packages virtualbox" packages="$packages virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi fi
# Scripts should not cause a system update in order to just install a couple # Scripts should not cause a system update in order to just install a couple
# of packages. If pacman -S --needed is going to fail, let it fail and the # of packages. If pacman -S --needed is going to fail, let it fail and the
# user will figure out the issues (without updating if required) and rerun # user will figure out the issues (without updating if required) and rerun
@ -344,20 +368,34 @@ archLinux()
#sudo pacman -Syu #sudo pacman -Syu
echo "Installing packages $packages..." echo "Installing packages $packages..."
sudo pacman -S --needed $packages sudo $pacman_install $packages
} }
############################################################################### ###############################################################################
# This function takes care of installing all dependencies for building Redox on # This function takes care of installing all dependencies for building Redox on
# Debian-based Linux # Debian-based Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu" # @params: $1 the emulator to install, "virtualbox" or "qemu"
# $2 the package manager to use # $2 install non-interactively, boolean
# $3 the package manager to use
############################################################################### ###############################################################################
ubuntu() ubuntu()
{ {
noninteractive=$2
package_manager=$3
echo "Detected Ubuntu/Debian" echo "Detected Ubuntu/Debian"
echo "Updating system..." echo "Updating system..."
sudo "$2" update sudo $package_manager update
if [ $package_manager == "apt-get" ]; then
if [ "$noninteractive" = true ]; then
install_command+="DEBIAN_FRONTEND=noninteractive apt-get install --assume-yes --quiet"
else
install_command="apt-get install"
fi
else
install_command="$package_manager install"
fi
echo "Installing required packages..." echo "Installing required packages..."
pkgs="\ pkgs="\
ant \ ant \
@ -373,10 +411,12 @@ ubuntu()
doxygen \ doxygen \
file \ file \
flex \ flex \
fuse3 \
g++ \ g++ \
genisoimage \ genisoimage \
git \ git \
gperf \ gperf \
intltool \
libexpat-dev \ libexpat-dev \
libfuse-dev \ libfuse-dev \
libgmp-dev \ libgmp-dev \
@ -401,6 +441,7 @@ ubuntu()
protobuf-compiler \ protobuf-compiler \
python3 \ python3 \
python3-mako \ python3-mako \
rsync \
scons \ scons \
texinfo \ texinfo \
unzip \ unzip \
@ -408,27 +449,40 @@ ubuntu()
xdg-utils \ xdg-utils \
xxd \ xxd \
zip \ zip \
zstd \
" "
# Not availible for at least ARM hosts # Not availible for at least ARM hosts
case "$host_arch" in case "$host_arch" in
x86*|i?86) pkgs="$pkgs libc6-dev-i386 syslinux-utils";; x86*|i?86) pkgs="$pkgs libc6-dev-i386 syslinux-utils";;
esac esac
sudo "$2" install $pkgs sudo $install_command $pkgs
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Installing QEMU..." echo "Installing QEMU..."
sudo "$2" install qemu-system-x86 qemu-kvm sudo $install_command qemu-system-x86 qemu-kvm
sudo "$2" install qemu-efi-arm qemu-system-arm sudo $install_command qemu-efi-arm qemu-system-arm
else else
echo "QEMU already installed!" echo "QEMU already installed!"
fi fi
else elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then if [ -z "$(which virtualbox)" ]; then
if grep '^ID=debian$' /etc/os-release > /dev/null; then
echo "Virtualbox is not in the official debian packages"
echo "To install virtualbox on debian, see https://wiki.debian.org/VirtualBox"
echo "Please install VirtualBox and re-run this script,"
echo "or run with -e qemu"
exit 1
else
echo "Installing VirtualBox..." echo "Installing VirtualBox..."
sudo "$2" install virtualbox sudo $install_command virtualbox
fi
else else
echo "VirtualBox already installed!" echo "VirtualBox already installed!"
fi fi
else
echo "Unknown emulator: $1"
exit 1
fi fi
} }
@ -436,29 +490,43 @@ ubuntu()
# This function takes care of installing all dependencies for building Redox on # This function takes care of installing all dependencies for building Redox on
# Fedora Linux # Fedora Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu" # @params: $1 the emulator to install, "virtualbox" or "qemu"
# $2 install non-interactively, boolean
############################################################################### ###############################################################################
fedora() fedora()
{ {
noninteractive=$2
dnf_install="dnf install"
if [ "$noninteractive" = true ]; then
dnf_install+=" --assumeyes --quiet"
fi
echo "Detected Fedora" echo "Detected Fedora"
if [ -z "$(which git)" ]; then if [ -z "$(which git)" ]; then
echo "Installing git..." echo "Installing git..."
sudo dnf install git-all sudo $dnf_install git-all
fi fi
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Installing QEMU..." echo "Installing QEMU..."
sudo dnf install qemu-system-x86 qemu-kvm sudo $dnf_install qemu-system-x86 qemu-kvm
else else
echo "QEMU already installed!" echo "QEMU already installed!"
fi fi
else elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then if [ -z "$(which virtualbox)" ]; then
echo "Installing VirtualBox..." echo "Please install VirtualBox and re-run this script,"
sudo dnf install virtualbox echo "or run with -e qemu"
exit 1
else else
echo "VirtualBox already installed!" echo "VirtualBox already installed!"
fi fi
else
echo "Unknown emulator: $1"
exit 1
fi fi
# Use rpm -q <package> to check if it's already installed # Use rpm -q <package> to check if it's already installed
PKGS=$(for pkg in file \ PKGS=$(for pkg in file \
autoconf \ autoconf \
@ -512,88 +580,144 @@ fedora()
clang \ clang \
doxygen \ doxygen \
ant \ ant \
protobuf-compiler ; do rpm -q $pkg > /dev/null || echo $pkg; done) protobuf-compiler \
zstd ; do rpm -q $pkg > /dev/null || echo $pkg; done)
# If the list of packages is not empty, install missing # If the list of packages is not empty, install missing
COUNT=$(echo $PKGS | wc -w) COUNT=$(echo $PKGS | wc -w)
if [ $COUNT -ne 0 ]; then if [ $COUNT -ne 0 ]; then
echo "Installing necessary build tools..." echo "Installing necessary build tools..."
sudo dnf install $PKGS sudo $dnf_install $PKGS
fi fi
} }
############################################################################### ###############################################################################
# This function takes care of installing all dependencies for building Redox on # This function takes care of installing all dependencies for building Redox on
# *SUSE Linux # *SUSE Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
############################################################################### ###############################################################################
suse() suse()
{ {
echo "Detected SUSE Linux" echo "Detected SUSE Linux"
packages=(
"gcc"
"gcc-c++"
"glibc-devel-32bit"
"nasm"
"make"
"fuse-devel"
"cmake"
"openssl"
"automake"
"gettext-tools"
"libtool"
"po4a"
"patch"
"flex"
"gperf"
"autoconf"
"bison"
"curl"
"wget"
"file"
"libexpat-devel"
"gmp-devel"
"libpng16-devel"
"libjpeg8-devel"
"perl"
"perl-HTML-Parser"
"m4"
"patch"
"scons"
"pkgconf"
"syslinux-utils"
"ninja"
"meson"
"python-Mako"
"xdg-utils"
"zip"
"unzip"
"llvm"
"clang"
"doxygen"
"lua54"
"ant"
"protobuf"
)
if [ -z "$(which git)" ]; then if [ -z "$(which git)" ]; then
echo "Installing git..." echo "Will install git ..."
zypper install git packages+=(git)
fi fi
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Installing QEMU..." echo "Will install QEMU..."
sudo zypper install qemu-x86 qemu-kvm packages+=(qemu-x86 qemu-kvm)
else else
echo "QEMU already installed!" echo "QEMU already installed!"
fi fi
else elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then if [ -z "$(which virtualbox)" ]; then
echo "Please install VirtualBox and re-run this script," echo "Please install VirtualBox and re-run this script,"
echo "or run with -e qemu" echo "or run with -e qemu"
exit exit 1
else else
echo "VirtualBox already installed!" echo "VirtualBox already installed!"
fi fi
else
echo "Unknown emulator: $1"
exit 1
fi fi
echo "Installing necessary build tools..." echo "Installing necessary build tools..."
sudo zypper install \
gcc \ # We could install all the packages in a single zypper command with:
gcc-c++ \ #
glibc-devel-32bit \ # zypper install package1 package2 package3
nasm \ #
make \ # But there is an issue with this: zypper returns a success code if at
fuse-devel \ # least one of the packages was correctly installed, but we need it to fail
cmake \ # if any of the packages is missing.
openssl \ #
automake \ # To confirm that the packages are available, we try to install them one by
gettext-tools \ # one with --dry-run.
libtool \ # We still install all the packages in a single zypper command so that the
po4a \ # user has to confirm only once.
patch \ for p in ${packages[@]}; do
flex \ if rpm -q "${p}" > /dev/null ; then
gperf \ echo "${p} is already installed"
autoconf \ else
bison \ # Zypper shows a confirmation prompt and the "y" answer even with
curl \ # --non-interactive and --no-confirm:
wget \ #
file \ # 1 new package to install.
libexpat-devel \ # Overall download size: 281.7 KiB. Already cached: 0 B. After the operation, additional 394.6 KiB will be used.
gmp-devel \ # Continue? [y/n/v/...? shows all options] (y): y
libpng16-devel \ #
libjpeg8-devel \ # That could make the user think that the package was installed,
perl \ # when it was only a dry run.
perl-HTML-Parser \ # To avoid the confusion, we hide the output unless there was an
m4 \ # error.
patch \ if out="$(zypper --non-interactive install --no-confirm --dry-run --force-resolution ${p} 2>&1)" ; then
scons \ echo "${p} can be installed"
pkgconf \ else
syslinux-utils \ echo "no"
ninja \ echo ""
meson \ echo "Zypper output:"
python-Mako \ echo ""
xdg-utils \ echo "${out}"
zip \ echo ""
unzip \ echo "Could not find how to install '${p}', try running:"
llvm \ echo ""
clang \ echo " zypper install ${p}"
doxygen \ echo ""
lua54 \ exit 1
ant \ fi
protobuf fi
done
zypper install ${packages[@]}
} }
############################################################################## ##############################################################################
@ -616,15 +740,29 @@ gentoo()
echo "Installing fuse..." echo "Installing fuse..."
sudo emerge sys-fs/fuse sudo emerge sys-fs/fuse
fi fi
if [ "$2" == "qemu" ]; then
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Please install QEMU and re-run this script" echo "Please install QEMU and re-run this script"
echo "Step1. Add QEMU_SOFTMMU_TARGETS=\"x86_64\" to /etc/portage/make.conf" echo "Step1. Add QEMU_SOFTMMU_TARGETS=\"x86_64\" to /etc/portage/make.conf"
echo "Step2. Execute \"sudo emerge app-emulation/qemu\"" echo "Step2. Execute \"sudo emerge app-emulation/qemu\""
exit 1
else else
echo "QEMU already installed!" echo "QEMU already installed!"
fi fi
elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then
echo "Please install VirtualBox and re-run this script,"
echo "or run with -e qemu"
exit 1
else
echo "VirtualBox already installed!"
fi fi
else
echo "Unknown emulator: $1"
exit 1
fi
if [ -z "$(which cmake)" ]; then if [ -z "$(which cmake)" ]; then
echo "Installing cmake..." echo "Installing cmake..."
sudo emerge dev-util/cmake sudo emerge dev-util/cmake
@ -649,14 +787,17 @@ solus()
else else
echo "QEMU already installed!" echo "QEMU already installed!"
fi fi
else elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then if [ -z "$(which virtualbox)" ]; then
echo "Please install VirtualBox and re-run this script," echo "Please install VirtualBox and re-run this script,"
echo "or run with -e qemu" echo "or run with -e qemu"
exit exit 1
else else
echo "VirtualBox already installed!" echo "VirtualBox already installed!"
fi fi
else
echo "Unknown emulator: $1"
exit 1
fi fi
echo "Installing necessary build tools..." echo "Installing necessary build tools..."
@ -708,6 +849,10 @@ usage()
echo " -p [package Choose an Ubuntu package manager, apt-fast or" echo " -p [package Choose an Ubuntu package manager, apt-fast or"
echo " manager] aptitude" echo " manager] aptitude"
echo " -d Only install the dependencies, skip boot step" echo " -d Only install the dependencies, skip boot step"
echo " -y Install non-interactively. Answer \"yes\" or"
echo " select the default option for rustup and package"
echo " managers. Only the apt, dnf and pacman"
echo " package managers are supported."
echo "EXAMPLES:" echo "EXAMPLES:"
echo echo
echo "./bootstrap.sh -e qemu" echo "./bootstrap.sh -e qemu"
@ -730,8 +875,10 @@ cargoInstall() {
# This function takes care of everything associated to rust, and the version manager # This function takes care of everything associated to rust, and the version manager
# That controls it, it can install rustup and uninstall multirust as well as making # That controls it, it can install rustup and uninstall multirust as well as making
# sure that the correct version of rustc is selected by rustup # sure that the correct version of rustc is selected by rustup
# @params: $1 install non-interactively, boolean
#################################################################################### ####################################################################################
rustInstall() { rustInstall() {
noninteractive=$1
# Check to see if multirust is installed, we don't want it messing with rustup # Check to see if multirust is installed, we don't want it messing with rustup
# In the future we can probably remove this but I believe it's good to have for now # In the future we can probably remove this but I believe it's good to have for now
if [ -e /usr/local/lib/rustlib/uninstall.sh ] ; then if [ -e /usr/local/lib/rustlib/uninstall.sh ] ; then
@ -744,20 +891,26 @@ rustInstall() {
sudo /usr/local/lib/rustlib/uninstall.sh sudo /usr/local/lib/rustlib/uninstall.sh
else else
echo "Please manually uninstall multirust and any other versions of rust, then re-run bootstrap." echo "Please manually uninstall multirust and any other versions of rust, then re-run bootstrap."
exit exit 1
fi fi
fi fi
# If rustup is not installed we should offer to install it for them # If rustup is not installed we should offer to install it for them
if [ -z "$(which rustup)" ]; then if [ -z "$(which rustup)" ]; then
rustup_options="--default-toolchain nightly"
echo "You do not have rustup installed." echo "You do not have rustup installed."
if [ "$noninteractive" = true ]; then
rustup="y"
rustup_options+=" -y"
else
echo "We HIGHLY recommend using rustup." echo "We HIGHLY recommend using rustup."
echo "Would you like to install it now?" echo "Would you like to install it now?"
echo "*WARNING* this involves a 'curl | sh' style command" echo "*WARNING* this involves a 'curl | sh' style command"
printf "(y/N): " printf "(y/N): "
read rustup read rustup
fi
if echo "$rustup" | grep -iq "^y" ;then if echo "$rustup" | grep -iq "^y" ;then
#install rustup #install rustup
curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain nightly curl https://sh.rustup.rs -sSf | sh -s -- $rustup_options
# You have to add the rustup variables to the $PATH # You have to add the rustup variables to the $PATH
echo "export PATH=\"\$HOME/.cargo/bin:\$PATH\"" >> ~/.bashrc echo "export PATH=\"\$HOME/.cargo/bin:\$PATH\"" >> ~/.bashrc
# source the variables so that we can execute rustup commands in the current shell # source the variables so that we can execute rustup commands in the current shell
@ -772,7 +925,7 @@ rustInstall() {
echo "Please either run the script again, accepting rustup install" echo "Please either run the script again, accepting rustup install"
echo "or install rustc nightly manually (not recommended) via:" echo "or install rustc nightly manually (not recommended) via:"
echo "\#curl -sSf https://static.rust-lang.org/rustup.sh | sh -s -- --channel=nightly" echo "\#curl -sSf https://static.rust-lang.org/rustup.sh | sh -s -- --channel=nightly"
exit exit 1
else else
echo "Your Rust install looks good!" echo "Your Rust install looks good!"
fi fi
@ -857,7 +1010,9 @@ emulator="qemu"
defpackman="apt-get" defpackman="apt-get"
dependenciesonly=false dependenciesonly=false
update=false update=false
while getopts ":e:p:udhs" opt noninteractive=false
while getopts ":e:p:udhys" opt
do do
case "$opt" in case "$opt" in
e) emulator="$OPTARG";; e) emulator="$OPTARG";;
@ -865,14 +1020,15 @@ do
d) dependenciesonly=true;; d) dependenciesonly=true;;
u) update=true;; u) update=true;;
h) usage;; h) usage;;
y) noninteractive=true;;
s) statusCheck && exit;; s) statusCheck && exit;;
\?) echo "I don't know what to do with that option, try -h for help"; exit;; \?) echo "I don't know what to do with that option, try -h for help"; exit 1;;
esac esac
done done
banner banner
rustInstall rustInstall "$noninteractive"
if [ "$update" == "true" ]; then if [ "$update" == "true" ]; then
git pull upstream master git pull upstream master
@ -891,10 +1047,10 @@ else
suse "$emulator" suse "$emulator"
# Debian or any derivative of it # Debian or any derivative of it
elif hash 2>/dev/null apt-get; then elif hash 2>/dev/null apt-get; then
ubuntu "$emulator" "$defpackman" ubuntu "$emulator" "$noninteractive" "$defpackman"
# Fedora # Fedora
elif hash 2>/dev/null dnf; then elif hash 2>/dev/null dnf; then
fedora "$emulator" fedora "$emulator" "$noninteractive"
# Gentoo # Gentoo
elif hash 2>/dev/null emerge; then elif hash 2>/dev/null emerge; then
gentoo "$emulator" gentoo "$emulator"
@ -903,7 +1059,7 @@ else
solus "$emulator" solus "$emulator"
# Arch Linux # Arch Linux
elif hash 2>/dev/null pacman; then elif hash 2>/dev/null pacman; then
archLinux "$emulator" archLinux "$emulator" "$noninteractive"
# FreeBSD # FreeBSD
elif hash 2>/dev/null pkg; then elif hash 2>/dev/null pkg; then
freebsd "$emulator" freebsd "$emulator"
@ -914,6 +1070,8 @@ else
fi fi
cargoInstall cargo-config 0.1.1 cargoInstall cargo-config 0.1.1
cargoInstall just 1.16.0
cargoInstall cbindgen 0.26.0
if [ "$dependenciesonly" = false ]; then if [ "$dependenciesonly" = false ]; then
boot boot

View File

@ -1,86 +1,3 @@
# Configuration for using acid # Configuration for using acid
# General settings include = ["../acid.toml"]
[general]
# Filesystem size in MiB
filesystem_size = 256
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
bootloader = {}
bootstrap = {}
acid = {}
coreutils = {}
# TODO: Does this need escalated?
escalated = {}
initfs = {}
ion = {}
ipcd = {}
kernel = {}
ptyd = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
escalated
"""
[[files]]
path = "/etc/init.d/10_acid"
data = """
export RUST_BACKTRACE full
acid
acid create_test
acid switch
acid tls
acid thread
shutdown
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023

View File

@ -25,6 +25,8 @@ cleye = {}
#cmatrix = {} # needs ncursesw now #cmatrix = {} # needs ncursesw now
contain = {} contain = {}
coreutils = {} coreutils = {}
cosmic-edit = {}
cosmic-icons = {}
cosmic-text = {} cosmic-text = {}
cpal = {} cpal = {}
curl = {} curl = {}
@ -41,20 +43,19 @@ expat = {}
extrautils = {} extrautils = {}
#fal #fal
#fd = {} # ctrlc-3.1.1 #fd = {} # ctrlc-3.1.1
#ffmpeg = {} # undefined references #ffmpeg6 = {} # undefined references
findutils = {} findutils = {}
fontconfig = {} fontconfig = {}
#freeciv = {} #freeciv = {}
freedoom = {} freedoom = {}
#freeglut = {} #freeglut = {}
freepats = {} freepats = {}
freetype = {} freetype2 = {}
#friar = {} # mio patch #friar = {} # mio patch
fribidi = {} fribidi = {}
#game-2048 = {} # rustc-serialize #game-2048 = {} # rustc-serialize
games = {}
#gawk = {} # langinfo.h #gawk = {} # langinfo.h
gcc = {} gcc13 = {}
gdbserver = {} gdbserver = {}
#gdk-pixbuf = {} # shared-mime-info #gdk-pixbuf = {} # shared-mime-info
gears = {} gears = {}
@ -75,6 +76,7 @@ init = {}
initfs = {} initfs = {}
installer = {} installer = {}
installer-gui = {} installer-gui = {}
intel-one-mono = {}
ion = {} ion = {}
ipcd = {} ipcd = {}
jansson = {} jansson = {}
@ -94,12 +96,13 @@ libvorbis = {}
libxml2 = {} libxml2 = {}
llvm = {} llvm = {}
logd = {} logd = {}
lua = {} lua54 = {}
#mdp = {} # ncursesw #mdp = {} # ncursesw
mesa = {} mesa = {}
mesa_glu = {} mesa-glu = {}
mgba = {} mgba = {}
#miniserve = {} # actix #miniserve = {} # actix
nano = {}
nasm = {} nasm = {}
#ncdu = {} # fails to link with ncurses #ncdu = {} # fails to link with ncurses
ncurses = {} ncurses = {}
@ -112,9 +115,8 @@ neverball = {}
#newlib = {} # obsolete #newlib = {} # obsolete
#newlibtest = {} # obsolete #newlibtest = {} # obsolete
nghttp2 = {} nghttp2 = {}
nulld = {}
openjazz = {} openjazz = {}
openssl = {} openssl1 = {}
openttd = {} openttd = {}
openttd-opengfx = {} openttd-opengfx = {}
openttd-openmsx = {} openttd-openmsx = {}
@ -142,6 +144,7 @@ pixman = {}
#pkgar = {} # uses virtual Cargo.toml, needs recipe update #pkgar = {} # uses virtual Cargo.toml, needs recipe update
pkg-config = {} pkg-config = {}
pkgutils = {} pkgutils = {}
pop-icon-theme = {}
#powerline = {} # dirs #powerline = {} # dirs
prboom = {} prboom = {}
procedural-wallpapers-rs = {} procedural-wallpapers-rs = {}
@ -154,6 +157,7 @@ readline = {}
redoxerd = {} redoxerd = {}
redox-fatfs = {} redox-fatfs = {}
redoxfs = {} redoxfs = {}
redox-games = {}
redox-ssh = {} redox-ssh = {}
relibc = {} relibc = {}
#relibc-tests = {} # madvise link error #relibc-tests = {} # madvise link error
@ -169,17 +173,17 @@ rust-cairo-demo = {}
rustual-boy = {} rustual-boy = {}
schismtracker = {} schismtracker = {}
scummvm = {} scummvm = {}
sdl = {} sdl-gfx = {}
sdl2 = {}
sdl2_gears = {}
sdl2_image = {}
sdl2_mixer = {}
sdl2_ttf = {}
sdl_gfx = {}
sdl_image = {}
sdl_mixer = {}
#sdl-player = {} # wctype_t #sdl-player = {} # wctype_t
sdl_ttf = {} sdl1 = {}
sdl1-image = {}
sdl1-mixer = {}
sdl1-ttf = {}
sdl2 = {}
sdl2-gears = {}
sdl2-image = {}
sdl2-mixer = {}
sdl2-ttf = {}
sed = {} sed = {}
#servo = {} # some more crates to port #servo = {} # some more crates to port
#shared-mime-info = {} # intltool-update out of date #shared-mime-info = {} # intltool-update out of date

View File

@ -1,195 +0,0 @@
# Default demo configuration
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 300
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
audiod = {}
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
#drivers = {} # more porting work
#escalated = {} # porting
extrautils = {}
findutils = {}
initfs = {}
#installer = {} # failure to build ring
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
#netsurf = {} # lots of porting issues
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
#pkgutils = {} # failure to build ring
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
git = {}
curl = {}
vim = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,132 +1,14 @@
# Default desktop configuration # Default desktop configuration
include = ["../desktop-minimal.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 128 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
bootstrap = {} # example = {}
coreutils = {}
escalated = {}
extrautils = {}
initfs = {}
ion = {}
ipcd = {}
kernel = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
ptyd = {}
smith = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
escalated
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,195 +0,0 @@
# Default desktop configuration
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 512
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
audiod = {}
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
#drivers = {} # more porting work
#escalated = {} # porting
extrautils = {}
findutils = {}
initfs = {}
#installer = {} # failure to build ring
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
#netsurf = {} # lots of porting issues
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
#pkgutils = {} # failure to build ring
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
git = {}
curl = {}
vim = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,216 +0,0 @@
# Configuration for development, includes cargo and rustc
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 2048
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
audiod = {}
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
installer-gui = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
# CLI programs
curl = {}
git = {}
terminfo = {}
vim = {}
# Development tools
cargo = {}
crates-io-index = {}
gcc = {}
gnu-binutils = {}
gnu-make = {}
rust = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/home/user/example.rs"
data = """
fn main() {
println!("Hello, Redox!");
}
"""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,191 +0,0 @@
# Default desktop configuration
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 256
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
audiod = {}
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
#drivers = {} # more porting work
#escalated = {} # porting
extrautils = {}
findutils = {}
initfs = {}
#installer = {} # failure to build ring
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
#netsurf = {} # lots of porting issues
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
#pkgutils = {} # failure to build ring
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital display:3/activate launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty display:2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -0,0 +1,10 @@
# Minimal configuration
include = ["../../server-minimal.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 256
# EFI partition size in MiB
efi_partition_size = 128

View File

@ -1,176 +1,3 @@
# Configuration for using resist # Configuration for using resist
# General settings include = ["../resist.toml"]
[general]
# Filesystem size in MiB
filesystem_size = 256
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
bash = {}
bootloader = {}
bootstrap = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
gcc = {}
gnu-binutils = {}
gnu-make = {}
initfs = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netutils = {}
ptyd = {}
resist = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd
"""
[[files]]
path = "/etc/init.d/20_resist"
data = """
export RUST_BACKTRACE full
resist /share/resist/redox/spec.toml
resist /share/resist/posix/base.toml
resist /share/resist/posix/shell.toml
shutdown
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,121 +1,14 @@
# Minimal configuration # Minimal configuration
include = ["../server-minimal.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 128 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
bootloader = {} # example = {}
bootstrap = {}
coreutils = {}
escalated = {}
extrautils = {}
initfs = {}
ion = {}
ipcd = {}
kernel = {}
ptyd = {}
smith = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
escalated
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,186 +0,0 @@
# Default server configuration
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 512
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
# FIXME: failed to build
# drivers = {}
# FIXME: failed to build
# escalated = {}
extrautils = {}
findutils = {}
initfs = {}
# FIXME: failed to build
# installer = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netutils = {}
# FIXME: failed to build
# pkgutils = {}
ptyd = {}
redoxfs = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
git = {}
curl = {}
vim = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
inputd -A 2
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

26
config/acid.toml Normal file
View File

@ -0,0 +1,26 @@
# Configuration for using acid
include = ["base.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 256
# Package settings
[packages]
acid = {}
coreutils = {}
ion = {}
[[files]]
path = "/usr/lib/init.d/10_acid"
data = """
export RUST_BACKTRACE full
acid
acid create_test
acid switch
acid tls
acid thread
shutdown
"""

168
config/base.toml Normal file
View File

@ -0,0 +1,168 @@
# Base configuration: This configuration is meant to be included by
# other configurations rather than use directly. It is the greatest
# common divisor of all other configurations and misses several
# parts necessary to create a bootable system.
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
[packages]
bootloader = {}
bootstrap = {}
escalated = {}
initfs = {}
ipcd = {}
kernel = {}
ptyd = {}
uutils = {}
## Configuration files
[[files]]
path = "/usr/lib/init.d/00_base"
data = """
# clear and recreate tmpdir with 0o1777 permission
rm -r /tmp
mkdir -m a=rwxt /tmp
ipcd
ptyd
escalated
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
# https://www.freedesktop.org/software/systemd/man/latest/os-release.html
[[files]]
path = "/usr/lib/os-release"
data = """
PRETTY_NAME="Redox OS 0.8.0"
NAME="Redox OS"
VERSION_ID="0.8.0"
VERSION="0.8.0"
ID="redox-os"
HOME_URL="https://redox-os.org/"
DOCUMENTATION_URL="https://redox-os.org/docs/"
SUPPORT_URL="https://redox-os.org/community/"
"""
# FIXME maybe add VARIANT= and VARIANT_ID= keys depending on the chosen configuration?
[[files]]
path = "/etc/os-release"
data = "../usr/lib/os-release"
symlink = true
## Symlinks for usrmerge
[[files]]
path = "/usr"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/usr/bin"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/bin"
data = "usr/bin"
symlink = true
[[files]]
path = "/usr/include"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/include"
data = "usr/include"
symlink = true
[[files]]
path = "/usr/lib"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/lib"
data = "usr/lib"
symlink = true
[[files]]
path = "/usr/share"
data = ""
directory = true
mode = 0o755
[[files]]
path = "/share"
data = "usr/share"
symlink = true
## Device file symlinks
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true
[[files]]
path = "/dev/tty"
data = "libc:tty"
symlink = true
[[files]]
path = "/dev/stdin"
data = "libc:stdin"
symlink = true
[[files]]
path = "/dev/stdout"
data = "libc:stdout"
symlink = true
[[files]]
path = "/dev/stderr"
data = "libc:stderr"
symlink = true
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
# Group settings
[groups.sudo]
gid = 1
members = ["user"]

View File

@ -0,0 +1,30 @@
# Default desktop configuration
include = ["server-minimal.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 128
# Package settings
[packages]
drivers = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
[[files]]
path = "/usr/lib/init.d/00_drivers"
data = """
pcid /etc/pcid.d/
"""
[[files]]
path = "/usr/lib/init.d/20_orbital"
data = """
orbital orblogin launcher
"""

33
config/desktop.toml Normal file
View File

@ -0,0 +1,33 @@
# Default desktop configuration
include = ["server.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 512
# Package settings
[packages]
audiod = {}
installer-gui = {}
netsurf = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
[[files]]
path = "/usr/lib/init.d/20_orbital"
data = """
audiod
orbital orblogin launcher
"""
# Override console config to not switch to VT 2
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
getty 2
getty debug: -J
"""

27
config/dev.toml Normal file
View File

@ -0,0 +1,27 @@
# Configuration for development, includes cargo and rustc
include = ["desktop.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 2048
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
cargo = {}
crates-io-index = {}
gcc13 = {}
gnu-binutils = {}
gnu-make = {}
rust = {}
[[files]]
path = "/home/user/example.rs"
data = """
fn main() {
println!("Hello, Redox!");
}
"""

View File

@ -1,86 +1,3 @@
# Configuration for using acid # Configuration for using acid
# General settings include = ["../acid.toml"]
[general]
# Filesystem size in MiB
filesystem_size = 256
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
bootloader = {}
bootstrap = {}
acid = {}
coreutils = {}
# TODO: Does this need escalated?
escalated = {}
initfs = {}
ion = {}
ipcd = {}
kernel = {}
ptyd = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
escalated
"""
[[files]]
path = "/etc/init.d/10_acid"
data = """
export RUST_BACKTRACE full
acid
acid create_test
acid switch
acid tls
acid thread
shutdown
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023

View File

@ -25,6 +25,7 @@ installer-gui = {}
ion = {} ion = {}
ipcd = {} ipcd = {}
kernel = {} kernel = {}
nano = {}
netdb = {} netdb = {}
netstack = {} netstack = {}
netsurf = {} netsurf = {}
@ -41,5 +42,6 @@ resist = {}
smith = {} smith = {}
userutils = {} userutils = {}
uutils = {} uutils = {}
vim = {}
#TODO: Add more packages #TODO: Add more packages

View File

@ -22,59 +22,20 @@
# # # #
############################################################################## ##############################################################################
include = ["../desktop.toml"]
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 320 filesystem_size = 512
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
audiod = {}
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
installer-gui = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
git = {}
curl = {}
vim = {}
# Games # Games
dosbox = {} dosbox = {}
freedoom = {} freedoom = {}
games = {}
prboom = {} prboom = {}
redox-games = {}
# Demos # Demos
pixelcannon = {} pixelcannon = {}
@ -82,153 +43,6 @@ pixelcannon = {}
# MIDI # MIDI
freepats = {} freepats = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true
[[files]] [[files]]
path = "/home/user/Welcome.txt" path = "/home/user/Welcome.txt"
data = """ data = """

View File

@ -1,132 +1,14 @@
# Default desktop configuration # Default desktop configuration
include = ["../desktop-minimal.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 128 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
bootstrap = {} # example = {}
coreutils = {}
escalated = {}
extrautils = {}
initfs = {}
ion = {}
ipcd = {}
kernel = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
ptyd = {}
smith = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
escalated
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,196 +1,14 @@
# Default desktop configuration # Default desktop configuration
include = ["../desktop.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 512 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
audiod = {} # example = {}
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
installer-gui = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
git = {}
curl = {}
vim = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,216 +1,14 @@
# Configuration for development, includes cargo and rustc # Configuration for development, includes cargo and rustc
include = ["../dev.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 2048 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
audiod = {} # example = {}
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
installer-gui = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
# CLI programs
curl = {}
git = {}
terminfo = {}
vim = {}
# Development tools
cargo = {}
crates-io-index = {}
gcc = {}
gnu-binutils = {}
gnu-make = {}
rust = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/home/user/example.rs"
data = """
fn main() {
println!("Hello, Redox!");
}
"""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,49 +1,14 @@
# Jeremy's configuration # Jeremy's configuration
include = ["../desktop.toml"]
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 4000 filesystem_size = 4000
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
audiod = {}
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
installer-gui = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
# apps # apps
cosmic-text = {} cosmic-text = {}
pixelcannon = {} pixelcannon = {}
@ -64,186 +29,12 @@ winit = {}
dosbox = {} dosbox = {}
eduke32 = {} eduke32 = {}
freedoom = {} freedoom = {}
games = {}
prboom = {} prboom = {}
redox-games = {}
# stuff # stuff
freepats = {} freepats = {}
generaluser-gs = {} generaluser-gs = {}
jeremy = {} jeremy = {}
keyboard-sfx = {} keyboard-sfx = {}
terminfo = {}
ttf-hack = {} ttf-hack = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true
[[files]]
path = "/home/user/Welcome.txt"
data = """
##############################################################################
# #
# Welcome to Redox! #
# #
# Redox is an operating system written in Rust, a language with focus #
# on safety and high performance. Redox, following the microkernel design, #
# aims to be secure, usable, and free. Redox is inspired by previous kernels #
# and operating systems, such as SeL4, MINIX, Plan 9, and BSD. #
# #
# Redox _is not_ just a kernel, it's a full-featured Operating System, #
# providing packages (memory allocator, file system, display manager, core #
# utilities, etc.) that together make up a functional and convenient #
# operating system. You can loosely think of it as the GNU or BSD ecosystem, #
# but in a memory safe language and with modern technology. #
# #
# The website can be found at https://www.redox-os.org. #
# #
# For things to try on Redox, please see #
# https://doc.redox-os.org/book/ch02-06-trying-out-redox.html #
# #
##############################################################################
"""

View File

@ -1,176 +1,3 @@
# Configuration for using resist # Configuration for using resist
# General settings include = ["../resist.toml"]
[general]
# Filesystem size in MiB
filesystem_size = 256
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
bash = {}
bootloader = {}
bootstrap = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
gcc = {}
gnu-binutils = {}
gnu-make = {}
initfs = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netutils = {}
ptyd = {}
resist = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd
"""
[[files]]
path = "/etc/init.d/20_resist"
data = """
export RUST_BACKTRACE full
resist /share/resist/redox/spec.toml
resist /share/resist/posix/base.toml
resist /share/resist/posix/shell.toml
shutdown
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,121 +1,14 @@
# Minimal configuration # Minimal configuration
include = ["../server-minimal.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 128 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
bootloader = {} # example = {}
bootstrap = {}
coreutils = {}
escalated = {}
extrautils = {}
initfs = {}
ion = {}
ipcd = {}
kernel = {}
ptyd = {}
smith = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
escalated
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,182 +1,14 @@
# Default server configuration # Default server configuration
include = ["../server.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 512 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
bash = {} # example = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
git = {}
curl = {}
vim = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
inputd -A 2
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

51
config/net.toml Normal file
View File

@ -0,0 +1,51 @@
# Net configuration: includes the base configuration and adds files required
# for networking
include = ["base.toml"]
# Package settings
[packages]
drivers = {}
netstack = {}
netutils = {}
## Driver init
[[files]]
path = "/usr/lib/init.d/00_drivers"
data = """
pcid /etc/pcid.d/
"""
## Network init
[[files]]
path = "/usr/lib/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
## Default net configuration (optimized for QEMU)
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""

17
config/redoxer-gui.toml Normal file
View File

@ -0,0 +1,17 @@
# Configuration for redoxer GUI image
include = ["redoxer.toml"]
# Package settings
[packages]
orbdata = {}
orbital = {}
# Override to run inside of orbital
[[files]]
path = "/usr/lib/init.d/30_redoxer"
data = """
echo
echo ## running redoxer in orbital ##
orbital redoxerd
"""

53
config/redoxer.toml Normal file
View File

@ -0,0 +1,53 @@
# Configuration for redoxer image
include = ["net.toml"]
# Package settings
[packages]
bash = {}
ca-certificates = {}
coreutils = {}
extrautils = {}
findutils = {}
gcc13 = {}
gnu-binutils = {}
netdb = {}
pkgutils = {}
redoxerd = {}
relibc = {}
# Override to not background dhcpd
[[files]]
path = "/usr/lib/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd
"""
[[files]]
path = "/usr/lib/init.d/20_env"
data = """
echo
echo ## preparing environment ##
export GROUPS 0
export HOME /root
export HOST redox
export SHELL /bin/sh
export UID 0
export USER root
cd /root
env
"""
[[files]]
path = "/usr/lib/init.d/30_redoxer"
data = """
echo
echo ## running redoxer ##
redoxerd
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"

45
config/resist.toml Normal file
View File

@ -0,0 +1,45 @@
# Configuration for using resist
include = ["net.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 256
# Package settings
[packages]
bash = {}
coreutils = {}
diffutils = {}
extrautils = {}
findutils = {}
gcc13 = {}
gnu-binutils = {}
gnu-make = {}
netdb = {}
resist = {}
userutils = {}
# Override to not background dhcpd
[[files]]
path = "/usr/lib/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd
"""
[[files]]
path = "/usr/lib/init.d/20_resist"
data = """
export RUST_BACKTRACE full
resist /share/resist/redox/spec.toml
resist /share/resist/posix/base.toml
resist /share/resist/posix/shell.toml
shutdown
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"

View File

@ -0,0 +1,23 @@
# Minimal configuration
include = ["base.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 128
# Package settings
[packages]
coreutils = {}
extrautils = {}
ion = {}
smith = {}
userutils = {}
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
getty 2
getty debug: -J
"""

44
config/server.toml Normal file
View File

@ -0,0 +1,44 @@
# Default server configuration
include = ["net.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 512
# Package settings
[packages]
bash = {}
ca-certificates = {}
contain = {}
coreutils = {}
curl = {}
diffutils = {}
extrautils = {}
findutils = {}
git = {}
installer = {}
ion = {}
nano = {}
netdb = {}
pkgutils = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
terminfo = {}
userutils = {}
vim = {}
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
inputd -A 2
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"

View File

@ -1,86 +1,3 @@
# Configuration for using acid # Configuration for using acid
# General settings include = ["../acid.toml"]
[general]
# Filesystem size in MiB
filesystem_size = 256
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
bootloader = {}
bootstrap = {}
acid = {}
coreutils = {}
# TODO: Does this need escalated?
escalated = {}
initfs = {}
ion = {}
ipcd = {}
kernel = {}
ptyd = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
escalated
"""
[[files]]
path = "/etc/init.d/10_acid"
data = """
export RUST_BACKTRACE full
acid
acid create_test
acid switch
acid tls
acid thread
shutdown
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023

View File

@ -25,6 +25,8 @@ cleye = {}
#cmatrix = {} # needs ncursesw now #cmatrix = {} # needs ncursesw now
contain = {} contain = {}
coreutils = {} coreutils = {}
cosmic-edit = {}
cosmic-icons = {}
cosmic-text = {} cosmic-text = {}
cpal = {} cpal = {}
curl = {} curl = {}
@ -41,20 +43,19 @@ expat = {}
extrautils = {} extrautils = {}
#fal #fal
#fd = {} # ctrlc-3.1.1 #fd = {} # ctrlc-3.1.1
ffmpeg = {} ffmpeg6 = {}
findutils = {} findutils = {}
fontconfig = {} fontconfig = {}
#freeciv = {} #freeciv = {}
freedoom = {} freedoom = {}
#freeglut = {} #freeglut = {}
freepats = {} freepats = {}
freetype = {} freetype2 = {}
#friar = {} # mio patch #friar = {} # mio patch
fribidi = {} fribidi = {}
#game-2048 = {} # rustc-serialize #game-2048 = {} # rustc-serialize
games = {}
#gawk = {} # langinfo.h #gawk = {} # langinfo.h
gcc = {} gcc13 = {}
gdbserver = {} gdbserver = {}
#gdk-pixbuf = {} # shared-mime-info #gdk-pixbuf = {} # shared-mime-info
gears = {} gears = {}
@ -75,9 +76,10 @@ init = {}
initfs = {} initfs = {}
installer = {} installer = {}
installer-gui = {} installer-gui = {}
intel-one-mono = {}
ion = {} ion = {}
ipcd = {} ipcd = {}
jansson = {} #jansson = {} # needs config.sub update
kernel = {} kernel = {}
keyboard-sfx = {} keyboard-sfx = {}
lci = {} lci = {}
@ -94,12 +96,14 @@ libvorbis = {}
libxml2 = {} libxml2 = {}
llvm = {} llvm = {}
logd = {} logd = {}
lua = {} lua54 = {}
#mdp = {} # ncursesw #mdp = {} # ncursesw
mednafen = {}
mesa = {} mesa = {}
mesa_glu = {} mesa-glu = {}
mgba = {} mgba = {}
#miniserve = {} # actix #miniserve = {} # actix
nano = {}
nasm = {} nasm = {}
#ncdu = {} # fails to link with ncurses #ncdu = {} # fails to link with ncurses
ncurses = {} ncurses = {}
@ -112,10 +116,9 @@ neverball = {}
#newlib = {} # obsolete #newlib = {} # obsolete
#newlibtest = {} # obsolete #newlibtest = {} # obsolete
nghttp2 = {} nghttp2 = {}
nulld = {}
nushell = {} nushell = {}
openjazz = {} openjazz = {}
openssl = {} openssl1 = {}
openttd = {} openttd = {}
openttd-opengfx = {} openttd-opengfx = {}
openttd-openmsx = {} openttd-openmsx = {}
@ -143,6 +146,7 @@ pixman = {}
#pkgar = {} # uses virtual Cargo.toml, needs recipe update #pkgar = {} # uses virtual Cargo.toml, needs recipe update
pkg-config = {} pkg-config = {}
pkgutils = {} pkgutils = {}
pop-icon-theme = {}
#powerline = {} # dirs #powerline = {} # dirs
prboom = {} prboom = {}
procedural-wallpapers-rs = {} procedural-wallpapers-rs = {}
@ -155,6 +159,7 @@ readline = {}
redoxerd = {} redoxerd = {}
redox-fatfs = {} redox-fatfs = {}
redoxfs = {} redoxfs = {}
redox-games = {}
redox-ssh = {} redox-ssh = {}
relibc = {} relibc = {}
#relibc-tests = {} # madvise link error #relibc-tests = {} # madvise link error
@ -170,20 +175,20 @@ rust-cairo-demo = {}
rustual-boy = {} rustual-boy = {}
schismtracker = {} schismtracker = {}
scummvm = {} scummvm = {}
sdl = {} sdl-gfx = {}
sdl2 = {}
sdl2_gears = {}
sdl2_image = {}
sdl2_mixer = {}
sdl2_ttf = {}
sdl_gfx = {}
sdl_image = {}
sdl_mixer = {}
#sdl-player = {} # wctype_t #sdl-player = {} # wctype_t
sdl_ttf = {} sdl1 = {}
sdl1-image = {}
sdl1-mixer = {}
sdl1-ttf = {}
sdl2 = {}
sdl2-gears = {}
sdl2-image = {}
sdl2-mixer = {}
sdl2-ttf = {}
sed = {} sed = {}
#servo = {} # some more crates to port #servo = {} # some more crates to port
#shared-mime-info = {} # intltool-update out of date shared-mime-info = {}
shellharden = {} shellharden = {}
shellstorm = {} shellstorm = {}
smith = {} smith = {}

View File

@ -22,56 +22,27 @@
# # # #
############################################################################## ##############################################################################
include = ["../desktop.toml"]
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 1024 filesystem_size = 1536
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
audiod = {} # GUI Apps
bash = {} cosmic-edit = {}
bootloader = {} cosmic-files = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
installer-gui = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
# Apps
periodictable = {} periodictable = {}
# Shell Apps # GUI Data
cosmic-icons = {}
intel-one-mono = {}
pop-icon-theme = {}
shared-mime-info = {}
binutils = {} # Shell Apps
curl = {} curl = {}
git = {} git = {}
gnu-grep = {} gnu-grep = {}
@ -82,9 +53,9 @@ vim = {}
# Games # Games
dosbox = {} dosbox = {}
freedoom = {} freedoom = {}
games = {}
neverball = {} neverball = {}
prboom = {} prboom = {}
redox-games = {}
sopwith = {} sopwith = {}
syobonaction = {} syobonaction = {}
@ -99,153 +70,6 @@ gears = {}
# MIDI # MIDI
freepats = {} freepats = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true
[[files]] [[files]]
path = "/home/user/Welcome.txt" path = "/home/user/Welcome.txt"
data = """ data = """

View File

@ -0,0 +1,41 @@
# Default desktop configuration using contain
include = ["../desktop.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}
# Override orbital init to use contain_orblogin
[[files]]
path = "/usr/lib/init.d/20_orbital"
data = """
audiod
orbital contain_orblogin launcher
"""
# Override console init to use contain
[[files]]
path = "/usr/lib/init.d/30_console"
data = """
getty --contain 2
getty --contain debug: -J
"""
[[files]]
path = "/etc/contain.toml"
data = """
pass_schemes = ["rand", "null", "tcp", "udp", "thisproc", "pty", "orbital", "display.vesa"]
sandbox_schemes = ["file"]
files = ["file:/dev/null"]
rofiles = ["file:/etc/passwd", "file:/etc/hostname", "file:/etc/localtime"]
dirs = ["file:/tmp"]
rodirs = ["file:/bin", "file:/ui"]
"""

View File

@ -1,132 +1,14 @@
# Default desktop configuration # Default desktop configuration
include = ["../desktop-minimal.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 128 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
bootstrap = {} # example = {}
coreutils = {}
escalated = {}
extrautils = {}
initfs = {}
ion = {}
ipcd = {}
kernel = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
ptyd = {}
smith = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
escalated
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,196 +1,14 @@
# Default desktop configuration # Default desktop configuration
include = ["../desktop.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 512 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
audiod = {} # example = {}
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
installer-gui = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
git = {}
curl = {}
vim = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,216 +1,14 @@
# Configuration for development, includes cargo and rustc # Configuration for development, includes cargo and rustc
include = ["../dev.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 2048 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
audiod = {} # example = {}
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
installer-gui = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
# CLI programs
curl = {}
git = {}
terminfo = {}
vim = {}
# Development tools
cargo = {}
crates-io-index = {}
gcc = {}
gnu-binutils = {}
gnu-make = {}
rust = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/home/user/example.rs"
data = """
fn main() {
println!("Hello, Redox!");
}
"""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,51 +1,19 @@
# Jeremy's configuration # Jeremy's configuration
include = ["../desktop.toml"]
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 8192 filesystem_size = 8192
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
audiod = {}
bash = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
installer-gui = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
relibc-tests = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
# apps # apps
boxedwine = {}
cosmic-edit = {}
cosmic-files = {}
cosmic-term = {}
cosmic-text = {} cosmic-text = {}
periodictable = {} periodictable = {}
pixelcannon = {} pixelcannon = {}
@ -55,17 +23,16 @@ sodium = {}
# cli # cli
acid = {} acid = {}
cleye = {} cleye = {}
curl = {} ffmpeg6 = {}
ffmpeg = {}
git = {}
gnu-grep = {} gnu-grep = {}
lua = {} lua54 = {}
nano = {}
nushell = {}
perg = {} perg = {}
relibc-tests = {}
ripgrep = {} ripgrep = {}
rustpython = {}
sed = {} sed = {}
shellharden = {} shellharden = {}
vim = {}
xz = {} xz = {}
# demos # demos
@ -85,7 +52,7 @@ procedural-wallpapers-rs = {}
rodioplay = {} rodioplay = {}
rust-cairo = {} rust-cairo = {}
rust-cairo-demo = {} rust-cairo-demo = {}
sdl2_gears = {} sdl2-gears = {}
vttest = {} vttest = {}
webrender = {} webrender = {}
winit = {} winit = {}
@ -94,13 +61,13 @@ winit = {}
autoconf = {} autoconf = {}
automake = {} automake = {}
#cargo = {} # openssl issues #cargo = {} # openssl issues
gcc = {} #gcc13 = {} # libiberty errors
gnu-binutils = {} gnu-binutils = {}
gnu-make = {} gnu-make = {}
nasm = {} nasm = {}
patch = {} patch = {}
pkg-config = {} pkg-config = {}
rust = {} #rust = {} # takes too long to compile
rustpython = {} rustpython = {}
# games # games
@ -109,7 +76,6 @@ dosbox = {}
eduke32 = {} eduke32 = {}
flycast = {} flycast = {}
freedoom = {} freedoom = {}
games = {}
gigalomania = {} gigalomania = {}
mednafen = {} mednafen = {}
mgba = {} mgba = {}
@ -121,6 +87,7 @@ openttd-opengfx = {}
openttd-openmsx = {} openttd-openmsx = {}
openttd-opensfx = {} openttd-opensfx = {}
prboom = {} prboom = {}
redox-games = {}
#retroarch = {} # need to package cores #retroarch = {} # need to package cores
rs-nes = {} # need game for testing rs-nes = {} # need game for testing
rust64 = {} # need roms rust64 = {} # need roms
@ -134,160 +101,15 @@ syobonaction = {}
vvvvvv = {} vvvvvv = {}
# stuff # stuff
cosmic-icons = {}
freepats = {} freepats = {}
generaluser-gs = {} generaluser-gs = {}
intel-one-mono = {}
jeremy = {} jeremy = {}
keyboard-sfx = {} keyboard-sfx = {}
libc-bench = {} libc-bench = {}
noto-color-emoji = {} noto-color-emoji = {}
pop-icon-theme = {} pop-icon-theme = {}
terminfo = {} shared-mime-info = {}
timidity = {} timidity = {}
ttf-hack = {} ttf-hack = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,176 +1,3 @@
# Configuration for using resist # Configuration for using resist
# General settings include = ["../resist.toml"]
[general]
# Filesystem size in MiB
filesystem_size = 256
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
bash = {}
bootloader = {}
bootstrap = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
gcc = {}
gnu-binutils = {}
gnu-make = {}
initfs = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netutils = {}
ptyd = {}
resist = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd
"""
[[files]]
path = "/etc/init.d/20_resist"
data = """
export RUST_BACKTRACE full
resist /share/resist/redox/spec.toml
resist /share/resist/posix/base.toml
resist /share/resist/posix/shell.toml
shutdown
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,121 +1,14 @@
# Minimal configuration # Minimal configuration
include = ["../server-minimal.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 128 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
bootloader = {} # example = {}
bootstrap = {}
coreutils = {}
escalated = {}
extrautils = {}
initfs = {}
ion = {}
ipcd = {}
kernel = {}
ptyd = {}
smith = {}
userutils = {}
uutils = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
escalated
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

View File

@ -1,182 +1,14 @@
# Default server configuration # Default server configuration
include = ["../server.toml"]
# Override the default settings here
# General settings # General settings
[general] [general]
# Filesystem size in MiB # Filesystem size in MiB
filesystem_size = 512 # filesystem_size = 1024
# Do not prompt if settings are not defined
prompt = false
# Package settings # Package settings
[packages] [packages]
bash = {} # example = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
ion = {}
ipcd = {}
kernel = {}
netdb = {}
netstack = {}
netutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
git = {}
curl = {}
vim = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
ptyd
pcid /etc/pcid.d/
escalated
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
inputd -A 2
getty 2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/redox-release"
data = "0.8.0"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "../bin"
symlink = true
[[files]]
path = "/usr/games"
data = "../games"
symlink = true
[[files]]
path = "/usr/include"
data = "../include"
symlink = true
[[files]]
path = "/usr/lib"
data = "../lib"
symlink = true
[[files]]
path = "/usr/share"
data = "../share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true

@ -1 +1 @@
Subproject commit ea439bebf510ce150d99ca5c9f7482a095e1af26 Subproject commit d0378b5c485ef7943e744ebeda4ecc453c7cd7b7

View File

@ -31,6 +31,7 @@ RUN set -ex; \
x86-64-unknown-redox-gcc \ x86-64-unknown-redox-gcc \
; \ ; \
cargo install cargo-config; \ cargo install cargo-config; \
cargo install just@1.16.0; \
apt-get autoremove -q -y; \ apt-get autoremove -q -y; \
apt-get clean -q -y; \ apt-get clean -q -y; \
rm -rf /var/lib/apt/lists/* rm -rf /var/lib/apt/lists/*

@ -1 +1 @@
Subproject commit d61b30de3f988630ed47acf8dd438ffe5c810bd5 Subproject commit 1c30f4a3c1f55974aed694b478ff77c0552a1576

View File

@ -8,6 +8,7 @@ ci-img: FORCE
rm -rf $(IMG_DIR) rm -rf $(IMG_DIR)
mkdir -p $(IMG_DIR) mkdir -p $(IMG_DIR)
$(MAKE) demo desktop server $(MAKE) demo desktop server
cd $(IMG_DIR) && zstd --rm *
cd $(IMG_DIR) && sha256sum -b * > SHA256SUM cd $(IMG_DIR) && sha256sum -b * > SHA256SUM
# The name of the target must match the name of the filesystem config file # The name of the target must match the name of the filesystem config file
@ -25,7 +26,7 @@ ci-pkg: prefix FORCE
PACKAGES="$$($(INSTALLER) --list-packages -c config/$(ARCH)/ci.toml)" && \ PACKAGES="$$($(INSTALLER) --list-packages -c config/$(ARCH)/ci.toml)" && \
cd cookbook && \ cd cookbook && \
./fetch.sh "$${PACKAGES}" && \ ./fetch.sh "$${PACKAGES}" && \
./repo.sh "$${PACKAGES}" ./repo.sh $(REPO_NONSTOP) "$${PACKAGES}"
# CI toolchain # CI toolchain
ci-toolchain: FORCE ci-toolchain: FORCE

View File

@ -5,16 +5,25 @@ HOST_ARCH?=$(shell uname -m)
# Configuration # Configuration
## Architecture to build Redox for (aarch64, i686, or x86_64). Defaults to a host one ## Architecture to build Redox for (aarch64, i686, or x86_64). Defaults to a host one
ARCH?=$(HOST_ARCH) ARCH?=$(HOST_ARCH)
## Sub-device type for aarch64 if needed
BOARD?=
## Enable to use binary prefix (much faster) ## Enable to use binary prefix (much faster)
PREFIX_BINARY?=1 PREFIX_BINARY?=1
## Enable to use binary packages (much faster) ## Enable to use binary packages (much faster)
REPO_BINARY?=0 REPO_BINARY?=0
## Name of the configuration to include in the image name e.g. desktop or server ## Name of the configuration to include in the image name e.g. desktop or server
CONFIG_NAME?=desktop CONFIG_NAME?=desktop
## Ignore errors when building the repo, attempt to build every package
## REPO_NONSTOP?=--nonstop
REPO_NONSTOP?=
## Select filesystem config ## Select filesystem config
ifeq ($(BOARD),)
FILESYSTEM_CONFIG?=config/$(ARCH)/$(CONFIG_NAME).toml FILESYSTEM_CONFIG?=config/$(ARCH)/$(CONFIG_NAME).toml
else
FILESYSTEM_CONFIG?=config/$(ARCH)/$(BOARD)/$(CONFIG_NAME).toml
endif
## Filesystem size in MB (default comes from filesystem_size in the FILESYSTEM_CONFIG) ## Filesystem size in MB (default comes from filesystem_size in the FILESYSTEM_CONFIG)
FILESYSTEM_SIZE?=$(shell grep filesystem_size $(FILESYSTEM_CONFIG) | cut -d' ' -f3) FILESYSTEM_SIZE?=$(shell cargo run --release --manifest-path installer/Cargo.toml -- --filesystem-size -c $(FILESYSTEM_CONFIG))
## Flags to pass to redoxfs-mkfs. Add --encrypt to set up disk encryption ## Flags to pass to redoxfs-mkfs. Add --encrypt to set up disk encryption
REDOXFS_MKFS_FLAGS?= REDOXFS_MKFS_FLAGS?=
## Set to 1 to enable Podman build, any other value will disable it ## Set to 1 to enable Podman build, any other value will disable it
@ -24,23 +33,20 @@ CONTAINERFILE?=podman/redox-base-containerfile
# Per host variables # Per host variables
HOST_CARGO=env -u RUSTUP_TOOLCHAIN cargo HOST_CARGO=env -u RUSTUP_TOOLCHAIN cargo
export NPROC=nproc
export REDOX_MAKE=make
HOST_TARGET := $(shell env -u RUSTUP_TOOLCHAIN rustc -vV | grep host | cut -d: -f2 | tr -d " ")
UNAME := $(shell uname) UNAME := $(shell uname)
ifeq ($(UNAME),Darwin) ifeq ($(UNAME),Darwin)
FUMOUNT=umount FUMOUNT=umount
export NPROC=sysctl -n hw.ncpu export NPROC=sysctl -n hw.ncpu
export REDOX_MAKE=make
VB_AUDIO=coreaudio VB_AUDIO=coreaudio
VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
HOST_TARGET ?= $(HOST_ARCH)-apple-darwin
ALLOC_FILE=truncate -s "$(FILESYSTEM_SIZE)m"
else ifeq ($(UNAME),FreeBSD) else ifeq ($(UNAME),FreeBSD)
FUMOUNT=sudo umount FUMOUNT=sudo umount
export NPROC=sysctl -n hw.ncpu
export REDOX_MAKE=gmake export REDOX_MAKE=gmake
VB_AUDIO=pulse # To check, will probaly be OSS on most setups VB_AUDIO=pulse # To check, will probably be OSS on most setups
VBM=VBoxManage VBM=VBoxManage
HOST_TARGET ?= $(HOST_ARCH)-unknown-freebsd
ALLOC_FILE=fallocate --posix --length "$(FILESYSTEM_SIZE)MiB"
else else
# Detect which version of the fusermount binary is available. # Detect which version of the fusermount binary is available.
ifneq (, $(shell which fusermount3)) ifneq (, $(shell which fusermount3))
@ -49,12 +55,8 @@ else
FUMOUNT=fusermount -u FUMOUNT=fusermount -u
endif endif
export NPROC=nproc
export REDOX_MAKE=make
VB_AUDIO=pulse VB_AUDIO=pulse
VBM=VBoxManage VBM=VBoxManage
HOST_TARGET ?= $(HOST_ARCH)-unknown-linux-gnu
ALLOC_FILE=fallocate --posix --length "$(FILESYSTEM_SIZE)MiB"
endif endif
ifneq ($(UNAME),Linux) ifneq ($(UNAME),Linux)
@ -81,6 +83,7 @@ REPO_TAG=$(BUILD)/repo.tag
endif endif
FSTOOLS_TAG=build/fstools.tag FSTOOLS_TAG=build/fstools.tag
export BOARD
## Cross compiler variables ## Cross compiler variables
AR=$(TARGET)-gcc-ar AR=$(TARGET)-gcc-ar

View File

@ -7,10 +7,18 @@ ifeq ($(shell which rustup),)
$(error rustup not found, install from "https://rustup.rs/") $(error rustup not found, install from "https://rustup.rs/")
endif endif
ifeq ($(shell which cbindgen),)
$(error cbindgen not found, install from crates.io or from your package manager)
endif
ifeq ($(shell which nasm),) ifeq ($(shell which nasm),)
$(error nasm not found, install from your package manager) $(error nasm not found, install from your package manager)
endif endif
ifeq ($(shell which just),)
$(error just not found, install from crates.io or from your package manager)
endif
CARGO_CONFIG_VERSION=0.1.1 CARGO_CONFIG_VERSION=0.1.1
ifeq ($(shell env -u RUSTUP_TOOLCHAIN cargo install --list | grep '^cargo-config v$(CARGO_CONFIG_VERSION):$$'),) ifeq ($(shell env -u RUSTUP_TOOLCHAIN cargo install --list | grep '^cargo-config v$(CARGO_CONFIG_VERSION):$$'),)
$(error cargo-config $(CARGO_CONFIG_VERSION) not found, run "cargo install --force --version $(CARGO_CONFIG_VERSION) cargo-config") $(error cargo-config $(CARGO_CONFIG_VERSION) not found, run "cargo install --force --version $(CARGO_CONFIG_VERSION) cargo-config")

View File

@ -2,7 +2,7 @@ $(BUILD)/harddrive.img: $(FSTOOLS_TAG) $(REPO_TAG)
mkdir -p $(BUILD) mkdir -p $(BUILD)
rm -rf $@ $@.partial rm -rf $@ $@.partial
-$(FUMOUNT) /tmp/redox_installer || true -$(FUMOUNT) /tmp/redox_installer || true
${ALLOC_FILE} $@.partial truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) $@.partial umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) $@.partial
mv $@.partial $@ mv $@.partial $@
@ -10,7 +10,7 @@ $(BUILD)/livedisk.iso: $(FSTOOLS_TAG) $(REPO_TAG)
mkdir -p $(BUILD) mkdir -p $(BUILD)
rm -rf $@ $@.partial rm -rf $@ $@.partial
-$(FUMOUNT) /tmp/redox_installer || true -$(FUMOUNT) /tmp/redox_installer || true
${ALLOC_FILE} $@.partial truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) --live $@.partial umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) --live $@.partial
mv $@.partial $@ mv $@.partial $@
@ -19,7 +19,7 @@ $(BUILD)/filesystem.img: $(FSTOOLS_TAG) $(REPO_TAG)
-$(FUMOUNT) $(BUILD)/filesystem/ || true -$(FUMOUNT) $(BUILD)/filesystem/ || true
rm -rf $@ $@.partial $(BUILD)/filesystem/ rm -rf $@ $@.partial $(BUILD)/filesystem/
-$(FUMOUNT) /tmp/redox_installer || true -$(FUMOUNT) /tmp/redox_installer || true
${ALLOC_FILE} $@.partial truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
redoxfs/target/release/redoxfs-mkfs $(REDOXFS_MKFS_FLAGS) $@.partial redoxfs/target/release/redoxfs-mkfs $(REDOXFS_MKFS_FLAGS) $@.partial
mkdir -p $(BUILD)/filesystem/ mkdir -p $(BUILD)/filesystem/
redoxfs/target/release/redoxfs $@.partial $(BUILD)/filesystem/ redoxfs/target/release/redoxfs $@.partial $(BUILD)/filesystem/

View File

@ -22,7 +22,13 @@ PREFIX_STRIP=\
-exec strip --strip-unneeded {} ';' \ -exec strip --strip-unneeded {} ';' \
2> /dev/null 2> /dev/null
$(PREFIX)/relibc-install: $(ROOT)/relibc | $(PREFIX)/rust-install $(CONTAINER_TAG) $(PREFIX)/relibc: $(ROOT)/relibc
mkdir -p "$(@D)"
rm -rf "$@.partial" "$@"
cp -r "$^" "$@.partial"
mv "$@.partial" "$@"
$(PREFIX)/relibc-install: $(PREFIX)/relibc | $(PREFIX)/rust-install $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1) ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@ $(PODMAN_RUN) $(MAKE) $@
else else
@ -31,12 +37,6 @@ else
rm -rf "$@.partial/$(TARGET)/include/"* rm -rf "$@.partial/$(TARGET)/include/"*
cp -r "$(PREFIX)/rust-install/$(TARGET)/include/c++" "$@.partial/$(TARGET)/include/c++" cp -r "$(PREFIX)/rust-install/$(TARGET)/include/c++" "$@.partial/$(TARGET)/include/c++"
cp -r "$(PREFIX)/rust-install/lib/rustlib/$(HOST_TARGET)/lib/" "$@.partial/lib/rustlib/$(HOST_TARGET)/" cp -r "$(PREFIX)/rust-install/lib/rustlib/$(HOST_TARGET)/lib/" "$@.partial/lib/rustlib/$(HOST_TARGET)/"
# Temporary hack to avoid breaking stuff before new pre-build prefix tarball with fixed rustlib/src is build and served at https://static.redox-os.org/toolchain/$(TARGET)/relibc-install.tar.gz
ifeq ($(PREFIX_BINARY),1)
rm -rf $@.partial/lib/rustlib/src
mkdir $@.partial/lib/rustlib/src
ln -s $(ROOT)/rust $@.partial/lib/rustlib/src
endif
cd "$<" && \ cd "$<" && \
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \ export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
export CARGO="env -u CARGO cargo" && \ export CARGO="env -u CARGO cargo" && \
@ -73,6 +73,9 @@ $(PREFIX)/rust-install: $(PREFIX)/rust-install.tar.gz
else else
$(ROOT)/rust:
git submodule update --init --recursive --checkout rust
PREFIX_BASE_INSTALL=$(PREFIX)/rust-freestanding-install PREFIX_BASE_INSTALL=$(PREFIX)/rust-freestanding-install
PREFIX_FREESTANDING_INSTALL=$(PREFIX)/gcc-freestanding-install PREFIX_FREESTANDING_INSTALL=$(PREFIX)/gcc-freestanding-install
@ -176,6 +179,7 @@ else
$(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial" $(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial"
rm -rf "$(PREFIX)/rust-freestanding-build" rm -rf "$(PREFIX)/rust-freestanding-build"
mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/bin" mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/bin"
mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/lib"
cd "$@.partial" && $(PREFIX_STRIP) cd "$@.partial" && $(PREFIX_STRIP)
touch "$@.partial" touch "$@.partial"
mv "$@.partial" "$@" mv "$@.partial" "$@"
@ -266,6 +270,7 @@ else
$(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial" $(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial"
rm -rf "$(PREFIX)/rust-build" rm -rf "$(PREFIX)/rust-build"
mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/bin" mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/bin"
mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/lib"
cd "$@.partial" && find . -name *.old -exec rm {} ';' && $(PREFIX_STRIP) cd "$@.partial" && find . -name *.old -exec rm {} ';' && $(PREFIX_STRIP)
touch "$@.partial" touch "$@.partial"
mv "$@.partial" "$@" mv "$@.partial" "$@"

View File

@ -1,5 +1,5 @@
QEMU=SDL_VIDEO_X11_DGAMOUSE=0 qemu-system-$(QEMU_ARCH) QEMU=SDL_VIDEO_X11_DGAMOUSE=0 qemu-system-$(QEMU_ARCH)
QEMUFLAGS=-d cpu_reset,guest_errors -name "Redox OS $(ARCH)" QEMUFLAGS=-d guest_errors -name "Redox OS $(ARCH)"
ifeq ($(ARCH),i686) ifeq ($(ARCH),i686)
audio?=ac97 audio?=ac97
@ -7,7 +7,12 @@ ifeq ($(ARCH),i686)
QEMU_ARCH=i386 QEMU_ARCH=i386
QEMU_MACHINE?=pc QEMU_MACHINE?=pc
QEMU_CPU?=pentium2 QEMU_CPU?=pentium2
QEMUFLAGS+=-smp 4 -m 2048 QEMUFLAGS+=-smp 1 -m 1024
# Default to using kvm when arch is i686 and host is x86_64
ifeq ($(HOST_ARCH),x86_64)
kvm?=yes
endif
else ifeq ($(ARCH),x86_64) else ifeq ($(ARCH),x86_64)
QEMU_ARCH=x86_64 QEMU_ARCH=x86_64
QEMU_MACHINE?=q35 QEMU_MACHINE?=q35
@ -20,7 +25,11 @@ else ifeq ($(ARCH),aarch64)
QEMU_ARCH=aarch64 QEMU_ARCH=aarch64
QEMU_MACHINE=virt QEMU_MACHINE=virt
QEMU_CPU=max QEMU_CPU=max
QEMU_EFI=/usr/share/AAVMF/AAVMF_CODE.fd ifeq ($(BOARD),raspi3bp)
QEMU_EFI=https://gitlab.redox-os.org/Ivan/redox_firmware/-/raw/main/platform/raspberry_pi/rpi3/u-boot-rpi-3-b-plus.bin
else
QEMU_EFI=https://gitlab.redox-os.org/Ivan/redox_firmware/-/raw/main/platform/qemu/qemu_arm64/u-boot-qemu-arm64.bin
endif
QEMUFLAGS+=-smp 1 -m 2048 QEMUFLAGS+=-smp 1 -m 2048
ifneq ($(vga),no) ifneq ($(vga),no)
QEMUFLAGS+=-device ramfb QEMUFLAGS+=-device ramfb
@ -32,8 +41,10 @@ else
$(error Unsupported ARCH for QEMU "$(ARCH)")) $(error Unsupported ARCH for QEMU "$(ARCH)"))
endif endif
# If host and target arch do not match, disable kvm
# (unless overridden above or by environment)
ifneq ($(ARCH),$(HOST_ARCH)) ifneq ($(ARCH),$(HOST_ARCH))
kvm=no kvm?=no
endif endif
ifeq ($(efi),yes) ifeq ($(efi),yes)
@ -110,7 +121,7 @@ ifneq ($(usb),no)
endif endif
ifeq ($(gdb),yes) ifeq ($(gdb),yes)
QEMUFLAGS+=-s -S QEMUFLAGS+=-d cpu_reset -s -S
endif endif
ifeq ($(UNAME),Linux) ifeq ($(UNAME),Linux)
@ -125,16 +136,15 @@ ifeq ($(UNAME),Darwin)
QEMUFLAGS+=-cpu $(QEMU_CPU) QEMUFLAGS+=-cpu $(QEMU_CPU)
endif endif
ifeq ($(UNAME),Linux)
$(BUILD)/extra.img:
fallocate --posix --length 1G $@
else
$(BUILD)/extra.img: $(BUILD)/extra.img:
truncate -s 1g $@ truncate -s 1g $@
endif
$(BUILD)/firmware.rom: $(BUILD)/firmware.rom:
ifeq ($(ARCH),aarch64)
wget -O $@ $(QEMU_EFI)
else
cp $(QEMU_EFI) $@ cp $(QEMU_EFI) $@
endif
qemu: $(DISK) $(FIRMWARE) $(BUILD)/extra.img qemu: $(DISK) $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \ $(QEMU) $(QEMUFLAGS) \
@ -178,3 +188,9 @@ qemu_extra: $(FIRMWARE) $(BUILD)/extra.img
qemu_nvme_extra: $(FIRMWARE) $(BUILD)/extra.img qemu_nvme_extra: $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \ $(QEMU) $(QEMUFLAGS) \
-drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA -drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
#additional steps for $(DISK) are required!!!
qemu_raspi: $(FIRMWARE) $(DISK)
$(QEMU) -M raspi3b -smp 4,cores=1 \
-kernel $(FIRMWARE) \
-serial stdio -display none -sd $(DISK)

View File

@ -16,7 +16,7 @@ else
export PATH="$(PREFIX_PATH):$$PATH" && \ export PATH="$(PREFIX_PATH):$$PATH" && \
PACKAGES="$$($(INSTALLER) --list-packages -c $(FILESYSTEM_CONFIG))" && \ PACKAGES="$$($(INSTALLER) --list-packages -c $(FILESYSTEM_CONFIG))" && \
cd cookbook && \ cd cookbook && \
./repo.sh "$${PACKAGES}" ./repo.sh $(REPO_NONSTOP) "$${PACKAGES}"
mkdir -p $(BUILD) mkdir -p $(BUILD)
# make sure fetch.tag is newer than the things repo modifies # make sure fetch.tag is newer than the things repo modifies
touch $< touch $<
@ -62,3 +62,21 @@ else
cd cookbook && \ cd cookbook && \
./unfetch.sh $* ./unfetch.sh $*
endif endif
# Invoke clean.sh, and repo.sh for a single target
cr.%: $(FSTOOLS_TAG) FORCE
$(MAKE) c.$*
$(MAKE) r.$*
# Invoke unfetch.sh, clean.sh, and repo.sh for a single target
ucr.%: $(FSTOOLS_TAG) FORCE
$(MAKE) u.$*
$(MAKE) cr.$*
uc.%: $(FSTOOLS_TAG) FORCE
$(MAKE) u.$*
$(MAKE) c.$*
ucf.%: (FSTOOLS_TAG) FORCE
$(MAKE) uc.$*
$(MAKE) f.$*

View File

@ -12,7 +12,7 @@ RUN apt-get update \
curl \ curl \
file \ file \
flex \ flex \
fuse \ fuse3 \
genisoimage \ genisoimage \
git \ git \
gperf \ gperf \
@ -50,7 +50,8 @@ RUN apt-get update \
perl \ perl \
doxygen \ doxygen \
ant \ ant \
protobuf-compiler protobuf-compiler \
intltool
# _UID_ must be replaced with the user's uid on host # _UID_ must be replaced with the user's uid on host
# podman root is mapped to your user id on host during build, # podman root is mapped to your user id on host during build,

View File

@ -4,3 +4,5 @@
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain nightly curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain nightly
cargo install --force --version 0.1.1 cargo-config cargo install --force --version 0.1.1 cargo-config
cargo install --force --version 1.16.0 just
cargo install --force --version 0.26.0 cbindgen

View File

@ -1,5 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e
########################################################## ##########################################################
# This function is simply a banner to introduce the script # This function is simply a banner to introduce the script
########################################################## ##########################################################
@ -13,7 +15,7 @@ banner()
################################################################################### ###################################################################################
# This function takes care of installing a dependency via package manager of choice # This function takes care of installing a dependency via package manager of choice
# for building redox on BSDs (MacOS, FreeBSD, etc.). # for building Redox on BSDs (macOS, FreeBSD, etc.).
# @params: $1 package manager # @params: $1 package manager
# $2 package name # $2 package name
# $3 binary name (optional) # $3 binary name (optional)
@ -58,14 +60,14 @@ install_freebsd_pkg()
############################################################################### ###############################################################################
# This function checks which of the supported package managers # This function checks which of the supported package managers
# is available on the OSX Host. # is available on the macOS host.
# If a supported package manager is found, it delegates the installing work to # If a supported package manager is found, it delegates the installing work to
# the relevant function. # the relevant function.
# Otherwise this function will exit this script with an error. # Otherwise this function will exit this script with an error.
############################################################################### ###############################################################################
osx() osx()
{ {
echo "Detected OSX!" echo "Detected macOS!"
if [ ! -z "$(which brew)" ]; then if [ ! -z "$(which brew)" ]; then
osx_homebrew $@ osx_homebrew $@
@ -81,23 +83,26 @@ osx()
############################################################################### ###############################################################################
# This function takes care of installing all dependencies using MacPorts # This function takes care of installing all dependencies using MacPorts
# for building redox on Mac OSX # for building Redox on macOS
# @params: $1 the emulator to install, virtualbox or qemu # @params: $1 the emulator to install, "virtualbox" or "qemu"
############################################################################### ###############################################################################
osx_macports() osx_macports()
{ {
echo "Macports detected! Now updating..." echo "MacPorts detected! Now updating..."
sudo port -v selfupdate sudo port -v selfupdate
echo "Installing missing packages..." echo "Installing missing packages..."
install_macports_pkg "git" install_macports_pkg "git"
install_macports_pkg "cmake"
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
install_macports_pkg "qemu" "qemu-system-x86_64" install_macports_pkg "qemu" "qemu-system-x86_64"
else elif [ "$1" == "virtualbox" ]; then
install_macports_pkg "virtualbox" install_macports_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi fi
install_macports_pkg "osxfuse" install_macports_pkg "osxfuse"
@ -106,8 +111,8 @@ osx_macports()
############################################################################### ###############################################################################
# This function takes care of installing all dependencies using Homebrew # This function takes care of installing all dependencies using Homebrew
# for building redox on Mac OSX # for building Redox on macOS
# @params: $1 the emulator to install, virtualbox or qemu # @params: $1 the emulator to install, "virtualbox" or "qemu"
############################################################################### ###############################################################################
osx_homebrew() osx_homebrew()
{ {
@ -118,10 +123,14 @@ osx_homebrew()
install_brew_pkg "git" install_brew_pkg "git"
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
install_brew_pkg "qemu" "qemu-system-x86_64" install_brew_pkg "qemu" "qemu-system-x86_64"
else elif [ "$1" == "virtualbox" ]; then
install_brew_pkg "virtualbox" install_brew_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi fi
install_brew_pkg "make" install_brew_pkg "make"
@ -130,43 +139,50 @@ osx_homebrew()
############################################################################### ###############################################################################
# This function takes care of installing all dependencies using pkg # This function takes care of installing all dependencies using pkg
# for building redox on FreeBSD # for building Redox on FreeBSD
# @params: $1 the emulator to install, virtualbox or qemu # @params: $1 the emulator to install, "virtualbox" or "qemu"
############################################################################### ###############################################################################
freebsd() freebsd()
{ {
set -xe set -x
echo "FreeBSD detected!" echo "FreeBSD detected!"
echo "Installing missing packages..." echo "Installing missing packages..."
install_freebsd_pkg "git" install_freebsd_pkg "git"
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
install_freebsd_pkg "qemu" "qemu-system-x86_64" install_freebsd_pkg "qemu" "qemu-system-x86_64"
else elif [ "$1" == "virtualbox" ]; then
install_freebsd_pkg "virtualbox" install_freebsd_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi fi
install_freebsd_pkg "gmake" install_freebsd_pkg "gmake"
install_freebsd_pkg "podman" install_freebsd_pkg "podman"
set +xe set +x
} }
############################################################################### ###############################################################################
# This function takes care of installing all dependencies for building redox on # This function takes care of installing all dependencies for building Redox on
# Arch linux # Arch Linux
# @params: $1 the emulator to install, virtualbox or qemu # @params: $1 the emulator to install, "virtualbox" or "qemu"
############################################################################### ###############################################################################
archLinux() archLinux()
{ {
echo "Detected Arch Linux" echo "Detected Arch Linux"
packages="git podman fuse" packages="git podman fuse"
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
packages="$packages qemu" packages="$packages qemu"
elif [ "$1" == "virtualbox" ]; then elif [ "$1" == "virtualbox" ]; then
packages="$packages virtualbox" packages="$packages virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi fi
# Scripts should not cause a system update in order to just install a couple # Scripts should not cause a system update in order to just install a couple
# of packages. If pacman -S --needed is going to fail, let it fail and the # of packages. If pacman -S --needed is going to fail, let it fail and the
# user will figure out the issues (without updating if required) and rerun # user will figure out the issues (without updating if required) and rerun
@ -176,12 +192,13 @@ archLinux()
echo "Installing packages $packages..." echo "Installing packages $packages..."
sudo pacman -S --needed $packages sudo pacman -S --needed $packages
} }
############################################################################### ###############################################################################
# This function takes care of installing all dependencies for building redox on # This function takes care of installing all dependencies for building Redox on
# debian based linux # Debian-based Linux
# @params: $1 the emulator to install, virtualbox or qemu # @params: $1 the emulator to install, "virtualbox" or "qemu"
# $2 the package manager to use # $2 the package manager to use
############################################################################### ###############################################################################
ubuntu() ubuntu()
@ -200,20 +217,33 @@ ubuntu()
else else
echo "QEMU already installed!" echo "QEMU already installed!"
fi fi
else elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then if [ -z "$(which virtualbox)" ]; then
echo "Installing Virtualbox..."
sudo "$2" install virtualbox if grep '^ID=debian$' /etc/os-release > /dev/null; then
echo "Virtualbox is not in the official debian packages"
echo "To install virtualbox on debian, see https://wiki.debian.org/VirtualBox"
echo "Please install VirtualBox and re-run this script,"
echo "or run with -e qemu"
exit 1
else else
echo "Virtualbox already installed!" echo "Installing VirtualBox..."
sudo "$2" install virtualbox
fi fi
else
echo "VirtualBox already installed!"
fi fi
else
echo "Unknown emulator: $1"
exit 1
fi
} }
############################################################################### ###############################################################################
# This function takes care of installing all dependencies for building redox on # This function takes care of installing all dependencies for building Redox on
# fedora linux # Fedora Linux
# @params: $1 the emulator to install, virtualbox or qemu # @params: $1 the emulator to install, "virtualbox" or "qemu"
############################################################################### ###############################################################################
fedora() fedora()
{ {
@ -222,6 +252,7 @@ fedora()
echo "Installing git..." echo "Installing git..."
sudo dnf install git-all sudo dnf install git-all
fi fi
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Installing QEMU..." echo "Installing QEMU..."
@ -229,14 +260,19 @@ fedora()
else else
echo "QEMU already installed!" echo "QEMU already installed!"
fi fi
else elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then if [ -z "$(which virtualbox)" ]; then
echo "Installing virtualbox..." echo "Please install VirtualBox and re-run this script,"
sudo dnf install virtualbox echo "or run with -e qemu"
exit 1
else else
echo "Virtualbox already installed!" echo "VirtualBox already installed!"
fi fi
else
echo "Unknown emulator: $1"
exit 1
fi fi
# Use rpm -q <package> to check if it's already installed # Use rpm -q <package> to check if it's already installed
PKGS=$(for pkg in podman; do rpm -q $pkg > /dev/null || echo $pkg; done) PKGS=$(for pkg in podman; do rpm -q $pkg > /dev/null || echo $pkg; done)
# If the list of packages is not empty, install missing # If the list of packages is not empty, install missing
@ -248,41 +284,100 @@ fedora()
} }
############################################################################### ###############################################################################
# This function takes care of installing all dependencies for building redox on # This function takes care of installing all dependencies for building Redox on
# *suse linux # *SUSE Linux
# @params: $1 the emulator to install, virtualbox or qemu # @params: $1 the emulator to install, "virtualbox" or "qemu"
############################################################################### ###############################################################################
suse() suse()
{ {
echo "Detected SUSE Linux" echo "Detected SUSE Linux"
packages=(
"make"
"fuse-devel"
"podman"
)
if [ -z "$(which git)" ]; then if [ -z "$(which git)" ]; then
echo "Installing git..." echo "Will install git ..."
zypper install git packages+=(git)
fi fi
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Installing QEMU..." echo "Will install QEMU..."
sudo zypper install qemu-x86 qemu-kvm packages+=(qemu-x86 qemu-kvm)
else else
echo "QEMU already installed!" echo "QEMU already installed!"
fi fi
else elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then if [ -z "$(which virtualbox)" ]; then
echo "Please install Virtualbox and re-run this script," echo "Please install VirtualBox and re-run this script,"
echo "or run with -e qemu" echo "or run with -e qemu"
exit exit 1
else else
echo "Virtualbox already installed!" echo "VirtualBox already installed!"
fi fi
else
echo "Unknown emulator: $1"
exit 1
fi fi
echo "Installing necessary build tools..." echo "Installing necessary build tools..."
sudo zypper install make fuse-devel podman
# We could install all the packages in a single zypper command with:
#
# zypper install package1 package2 package3
#
# But there is an issue with this: zypper returns a success code if at
# least one of the packages was correctly installed, but we need it to fail
# if any of the packages is missing.
#
# To confirm that the packages are available, we try to install them one by
# one with --dry-run.
# We still install all the packages in a single zypper command so that the
# user has to confirm only once.
for p in ${packages[@]}; do
if rpm -q "${p}" > /dev/null ; then
echo "${p} is already installed"
else
# Zypper shows a confirmation prompt and the "y" answer even with
# --non-interactive and --no-confirm:
#
# 1 new package to install.
# Overall download size: 281.7 KiB. Already cached: 0 B. After the operation, additional 394.6 KiB will be used.
# Continue? [y/n/v/...? shows all options] (y): y
#
# That could make the user think that the package was installed,
# when it was only a dry run.
# To avoid the confusion, we hide the output unless there was an
# error.
if out="$(zypper --non-interactive install --no-confirm --dry-run --force-resolution ${p} 2>&1)" ; then
echo "${p} can be installed"
else
echo "no"
echo ""
echo "Zypper output:"
echo ""
echo "${out}"
echo ""
echo "Could not find how to install '${p}', try running:"
echo ""
echo " zypper install ${p}"
echo ""
exit 1
fi
fi
done
zypper install ${packages[@]}
} }
############################################################################## ##############################################################################
# This function takes care of installing all dependencies for building redox on # This function takes care of installing all dependencies for building Redox on
# gentoo linux # Gentoo Linux
# @params: $1 the emulator to install, virtualbox or qemu # @params: $1 the emulator to install, "virtualbox" or "qemu"
############################################################################## ##############################################################################
gentoo() gentoo()
{ {
@ -295,32 +390,47 @@ gentoo()
echo "Installing fuse..." echo "Installing fuse..."
sudo emerge sys-fs/fuse sudo emerge sys-fs/fuse
fi fi
if [ "$2" == "qemu" ]; then
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Please install QEMU and re-run this script" echo "Please install QEMU and re-run this script"
echo "Step1. Add QEMU_SOFTMMU_TARGETS=\"x86_64\" to /etc/portage/make.conf" echo "Step1. Add QEMU_SOFTMMU_TARGETS=\"x86_64\" to /etc/portage/make.conf"
echo "Step2. Execute \"sudo emerge app-emulation/qemu\"" echo "Step2. Execute \"sudo emerge app-emulation/qemu\""
exit 1
else else
echo "QEMU already installed!" echo "QEMU already installed!"
fi fi
elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then
echo "Please install VirtualBox and re-run this script,"
echo "or run with -e qemu"
exit 1
else
echo "VirtualBox already installed!"
fi fi
else
echo "Unknown emulator: $1"
exit 1
fi
if [ -z "$(which cmake)" ]; then if [ -z "$(which cmake)" ]; then
echo "Installing cmake..." echo "Installing cmake..."
sudo emerge dev-util/cmake sudo emerge dev-util/cmake
fi fi
if [ -z "$(which podman)" ]; then if [ -z "$(which podman)" ]; then
echo "Please install Podman, https://wiki.gentoo.org/wiki/Podman" echo "Please install Podman, https://wiki.gentoo.org/wiki/Podman"
exit 1
fi fi
} }
############################################################################## ##############################################################################
# This function takes care of installing all dependencies for building redox on # This function takes care of installing all dependencies for building Redox on
# SolusOS # Solus
# @params: $1 the emulator to install, virtualbox or qemu # @params: $1 the emulator to install, "virtualbox" or "qemu"
############################################################################## ##############################################################################
solus() solus()
{ {
echo "Detected SolusOS" echo "Detected Solus"
if [ "$1" == "qemu" ]; then if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then if [ -z "$(which qemu-system-x86_64)" ]; then
@ -328,14 +438,17 @@ solus()
else else
echo "QEMU already installed!" echo "QEMU already installed!"
fi fi
else elif [ "$1" == "virtualbox" ]; then
if [ -z "$(which virtualbox)" ]; then if [ -z "$(which virtualbox)" ]; then
echo "Please install Virtualbox and re-run this script," echo "Please install VirtualBox and re-run this script,"
echo "or run with -e qemu" echo "or run with -e qemu"
exit exit 1
else else
echo "Virtualbox already installed!" echo "VirtualBox already installed!"
fi fi
else
echo "Unknown emulator: $1"
exit 1
fi fi
echo "Installing necessary build tools..." echo "Installing necessary build tools..."
@ -343,6 +456,7 @@ solus()
sudo eopkg it fuse-devel git make fuse2-devel rsync sudo eopkg it fuse-devel git make fuse2-devel rsync
if [ -z "$(which podman)" ]; then if [ -z "$(which podman)" ]; then
echo "Please install Podman" echo "Please install Podman"
exit 1
fi fi
} }
@ -439,14 +553,11 @@ boot()
MAKE="make" MAKE="make"
if [[ "$(uname)" == "FreeBSD" ]]; then if [[ "$(uname)" == "FreeBSD" ]]; then
MAKE="gmake" MAKE="gmake"
echo "kldload fuse.ko # This loads the kernel module for fuse" echo "kldload fuse.ko # This loads the kernel module for FUSE"
fi fi
echo "$MAKE all" echo "$MAKE all"
echo "$MAKE virtualbox or qemu" echo "$MAKE virtualbox or qemu"
echo echo
echo "You can also edit mk/config.mk and change PODMAN_BUILD to 1 so"
echo "you don't need to specify it on the command line."
echo
echo " Good luck!" echo " Good luck!"
exit exit
@ -477,7 +588,7 @@ do
u) update=true;; u) update=true;;
h) usage;; h) usage;;
s) statusCheck && exit;; s) statusCheck && exit;;
\?) echo "I don't know what to do with that option, try -h for help"; exit;; \?) echo "I don't know what to do with that option, try -h for help"; exit 1;;
esac esac
done done
@ -494,7 +605,7 @@ if [ "Darwin" == "$(uname -s)" ]; then
else else
# Here we will use package managers to determine which operating system the user is using. # Here we will use package managers to determine which operating system the user is using.
# Suse and derivatives # SUSE and derivatives
if hash 2>/dev/null zypper; then if hash 2>/dev/null zypper; then
suse "$emulator" suse "$emulator"
# Debian or any derivative of it # Debian or any derivative of it
@ -506,10 +617,10 @@ else
# Gentoo # Gentoo
elif hash 2>/dev/null emerge; then elif hash 2>/dev/null emerge; then
gentoo "$emulator" gentoo "$emulator"
# SolusOS # Solus
elif hash 2>/dev/null eopkg; then elif hash 2>/dev/null eopkg; then
solus "$emulator" solus "$emulator"
# Arch linux # Arch Linux
elif hash 2>/dev/null pacman; then elif hash 2>/dev/null pacman; then
archLinux "$emulator" archLinux "$emulator"
# FreeBSD # FreeBSD
@ -517,7 +628,7 @@ else
freebsd "$emulator" freebsd "$emulator"
# Unsupported platform # Unsupported platform
else else
printf "\e[31;1mFatal error: \e[0;31mUnsupported platform, please open an issue\[0m" printf "\e[31;1mFatal error: \e[0;31mUnsupported platform, please open an issue\e[0m\n"
fi fi
fi fi

@ -1 +1 @@
Subproject commit 4048f541a09c6528a76d6b74dcf70b20b20ebb9c Subproject commit 14a07dc268ec41db87d4f453022ac8805b918d20

2
relibc

@ -1 +1 @@
Subproject commit b5a4dc65e56ebefad383889d7393ab16ca78dec2 Subproject commit 65589f9c935a7eaaa2d1d8db4875fbb458b29edd

75
scripts/backtrace.sh Executable file
View File

@ -0,0 +1,75 @@
#!/usr/bin/env bash
usage()
{
echo "Usage: $0 -r recipe [ -e command_name ] [ -R ] [ -X | -6 | -A ] [[ -b backtracefile ] | [ addr1 ... ]]"
echo
echo "Print the backtrace contained in the backtracefile."
echo "Symbols are taken from the executable for the given recipe."
echo "If no backtracefile is given, decode the given addresses instead."
echo "This command must be run in the 'redox' directory."
echo
echo "-X for x86_64, -6 for i686, -A for aarch64 (x86_64 is the default)."
echo "To read from stdin, use '-b -'"
echo "The name of the executable must match what Cargo believes it to be."
echo "If the executalbe is named 'recipe_command', just use 'command' as the name."
echo "The debug version of the executable is used if available."
echo "The release version is used if no debug version exists."
echo "-R to force the use of the 'release' version of the executable."
echo "Make sure the executable is the one that produced the backtrace."
exit 1
}
ARCH="x86_64"
while getopts ":b:e:r:hRXA6" opt
do
case "$opt" in
X) ARCH="x86_64";;
A) ARCH="aarch64";;
6) ARCH="i686";;
b) INFILE="$OPTARG";;
e) COMMAND="$OPTARG";;
i) INST="$OPTARG";;
r) RECIPE_NAME="$OPTARG";;
R) RELEASE=true;;
h) usage;;
\?) echo "Unknown option -$OPTARG, try -h for help"; exit;;
:) echo "-$OPTARG requires a value"; exit;;
esac
done
shift $((OPTIND -1))
if [ -z "$RECIPE_NAME" ]
then
usage
fi
if [ -z "$INFILE" -a $# = 0 ]
then
usage
fi
# if no command name is given, assume it's the same as the recipe name
RECIPE_DIR="$(cd cookbook; target/release/find_recipe $RECIPE_NAME)"
if [ -z "$COMMAND" ]
then
COMMAND="$RECIPE_NAME"
fi
# look for the debug version of the command
EXECUTABLE=cookbook/"$RECIPE_DIR"/target/"$ARCH"-unknown-redox/build/target/"$ARCH"-unknown-redox/debug/"$COMMAND"
# try the release version next
if [ ! -f "$EXECUTABLE" -o ! -z "$RELEASE" ]
then
EXECUTABLE=cookbook/"$RECIPE_DIR"/target/"$ARCH"-unknown-redox/build/target/"$ARCH"-unknown-redox/release/"$COMMAND"
fi
if [ $# -ne 0 ]
then
addr2line --demangle=rust --inlines --pretty-print --functions --exe="$EXECUTABLE" $@
else
sed '/^\s*$/d; s/^.*0x\([0-9a-f]*\).*$/\1/g' "$INFILE" | addr2line --demangle=rust --inlines --pretty-print --functions --exe="$EXECUTABLE"
fi

20
scripts/category.sh Executable file
View File

@ -0,0 +1,20 @@
#!/usr/bin/env bash
if [ -z "$1" ] || [ -z "$2" ]
then
echo "Build or clean all recipe directories in a category" >&2
echo Usage: $0 "<action>" "<recipe-category>" >&2
echo "<action>" can be f, r, c, u, or combinations that \"make\" understands >&2
exit 1
fi
set -x
action="${1#-}"
for recipe in `find cookbook/recipes/"$2" -name "recipe.*"`
do
recipe_folder=`dirname "$recipe"`
recipe_name=`basename "$recipe_folder"`
make "$action"."$recipe_name"
done

14
scripts/commit-hash.sh Executable file
View File

@ -0,0 +1,14 @@
#!/usr/bin/env bash
if [ $# -ne 1 ]
then
echo "Usage: $0 recipe_name"
echo " Print the commit hash for recipe_name"
exit 1
fi
cd cookbook
recipe_path="$(target/release/find_recipe $1)"
cd "$recipe_path"/source
git branch -v

View File

@ -38,7 +38,7 @@ then
exit 1 exit 1
fi fi
BOOTLOADER="cookbook/recipes/bootloader/target/${ARCH}-unknown-redox/stage/boot/bootloader.efi" BOOTLOADER="cookbook/recipes/core/bootloader/target/${ARCH}-unknown-redox/stage/boot/bootloader.efi"
set -x set -x
sudo mkdir -pv "${ESP}/EFI" "${ESP}/loader/entries" sudo mkdir -pv "${ESP}/EFI" "${ESP}/loader/entries"
sudo cp -v "${BOOTLOADER}" "${ESP}/EFI/redox.efi" sudo cp -v "${BOOTLOADER}" "${ESP}/EFI/redox.efi"

23
scripts/include-recipes.sh Executable file
View File

@ -0,0 +1,23 @@
#!/usr/bin/env bash
# Given a string, find recipe.toml files containing that string.
# Create a list that can be copy/pasted into a filesystem config.
if [ -z "$*" ]
then
echo "Find matching recipes, and format for inclusion in config"
echo "Usage: $0 \"pattern\""
echo "Must be run from 'redox' directory"
echo "e.g. $0 \"TODO.*error\""
exit 1
fi
cookbook_recipes="cookbook/recipes"
recipe_paths=$(grep -rl "$*" "$cookbook_recipes" --include recipe.toml)
for recipe_path in $recipe_paths
do
recipe_dir="$(dirname $recipe_path)"
recipe_name="$(basename $recipe_dir)"
echo "$recipe_name = {} # " $(grep "$*" $recipe_path)
done

27
scripts/pkg-size.sh Executable file
View File

@ -0,0 +1,27 @@
#!/usr/bin/env bash
if [ $# = 0 ]
then
find cookbook/recipes \( -name stage.pkgar -o -name stage.tar.gz \) -exec ls -hs {} \;
exit 0
fi
for recipe in $@
do
if [ "$recipe" = "-h" ] || [ "$recipe" = "--help" ]
then
echo "Usage: $0 [recipe] ..."
echo " For the recipe(s), prints the size of 'stage.pkgar' and 'stage.tar.gz'."
echo " If no recipe is given, then all packages are listed."
exit 0
fi
recipe_paths=$(find cookbook/recipes -name $recipe)
for recipe_path in $recipe_paths
do
if [ -f "$recipe_path/recipe.toml" ] || [ -f "$recipe_path/recipe.sh" ]
then
find "$recipe_path" \( -name stage.pkgar -o -name stage.tar.gz \) -exec ls -hs {} \;
fi
done
done

View File

@ -1,18 +0,0 @@
#!/usr/bin/env bash
set -ex
if [ -z "$1" ]
then
echo "$0: no argument provided"
exit 1
fi
if [ ! -d "cookbook/recipes/$1" ]
then
echo "$0: $1 is not a recipe"
exit 1
fi
rm -rfv "cookbook/recipes/$1/"{source,source.tar,target}
make "r.$1"

26
scripts/show-package.sh Executable file
View File

@ -0,0 +1,26 @@
#!/usr/bin/env bash
# Show the contents of the stage and sysroot folders in some recipe
if [ -z "$*" ]
then
echo "Show the contents of the stage and sysroot folders in recipe(s)"
echo "Usage: $0 recipe1 ..."
echo "Must be run from the 'redox' directory"
echo "e.g. $0 kernel"
exit 1
fi
find_recipe="target/release/find_recipe"
if [ ! -x "cookbook/$find_recipe" ]
then
echo "$find_recipe not found."
echo "Please run 'make fstools' and try again."
exit 1
fi
for recipe in $*
do
recipe_dir="$(cd cookbook; "$find_recipe" "$recipe")"
ls -1 "cookbook/$recipe_dir/target"/*/{stage,sysroot}
done

View File

@ -1,16 +0,0 @@
#!/usr/bin/env bash
# Download the bootstrap script
curl -sf https://gitlab.redox-os.org/redox-os/redox/raw/master/bootstrap.sh -o bootstrap.sh
# Update Ubuntu/Debian-based systems
bash -e bootstrap.sh -d
# Update the Rust toolchain
rustup update || true
# Update the build system source and submodules
make pull
# Update the relibc folder timestamp
touch relibc
# Update relibc
make prefix
# Update recipes
make rebuild