Compare commits

...

1048 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
Jeremy Soller c439d044b0 Merge branch 'reenable-dash' into 'master'
Reenable dash

See merge request redox-os/redox!1373
2023-11-05 15:13:58 +00:00
mattmadeofpasta 7624d9c503
Reenable dash 2023-11-05 13:40:34 +00:00
Jeremy Soller e0fddec2db Merge branch 'rw_van_231024' into 'master'
Update config.mk to support changed option name for REPO_BINARY=1

See merge request redox-os/redox!1371
2023-11-05 12:56:28 +00:00
Ron Williams 5ad0f9900a Update config.mk to support changed option name for REPO_BINARY=1 2023-11-05 12:56:28 +00:00
Jeremy Soller 16812b36c7 Merge branch 'improve-readme' into 'master'
Improve/cleanup the README

See merge request redox-os/redox!1372
2023-11-04 18:36:48 +00:00
Jeremy Soller 1e04422369
Update cookbook and relibc 2023-11-04 12:24:02 -06:00
Jeremy Soller 5c4f103ccf
config/x86_64/jeremy: disable cargo due to openssl issues 2023-11-04 12:22:45 -06:00
Ribbon cb1e9a0cbd Improve/cleanup the README 2023-10-29 18:32:57 +00:00
Jeremy Soller 234dc59639
Update relibc 2023-10-19 10:32:00 -06:00
Jeremy Soller 3f41e1fda7
Update relibc 2023-10-19 09:08:49 -06:00
Jeremy Soller 5cc93a2d22 Merge branch 'disable_mic' into 'master'
Switch qemu sound device from hda-duplex to hda-output

See merge request redox-os/redox!1370
2023-10-19 14:57:05 +00:00
bjorn3 3bea19f266 Switch qemu sound device from hda-duplex to hda-output
hda-duplex allows recording too. At least for XFCE this results in a
scary mic recording icon even when nothing inside the VM is actually
recording anything.
2023-10-18 22:51:41 +02:00
Jeremy Soller 3a1b3de8f7
config/x86_64/ci.toml: enable ffmpeg 2023-10-10 12:58:38 -06:00
Jeremy Soller 3d5fd0b166 Update submodules 2023-10-09 13:37:17 -06:00
Jeremy Soller a55f8bfab0 Merge branch 'minor_cleanup' into 'master'
Two minor build system cleanups

See merge request redox-os/redox!1369
2023-10-08 12:49:01 +00:00
bjorn3 84bccb1d60 Build redoxfs and redoxfs-mkfs at the same time
This should be a bit faster.
2023-10-03 16:07:03 +02:00
bjorn3 577ca92715 Remove unused rule for gzip compressing files 2023-10-03 16:06:34 +02:00
Jeremy Soller 225e435292
Update cookbook 2023-09-25 08:56:15 -06:00
Jeremy Soller bb5118b123 Merge branch 'missing_bootloader_build' into 'master'
Fix building and running for the server-minimal config

See merge request redox-os/redox!1368
2023-09-22 14:03:29 +00:00
bjorn3 436f86b1ff Remove inputd init entry from server-minimal.toml
It doesn't get built
2023-09-22 15:59:54 +02:00
bjorn3 7a32bee728 Increase disk size for server-minimal to 128MB
64MB is no longer enough
2023-09-22 15:54:52 +02:00
bjorn3 c8a9f83c66 Add missing bootloader package entry to server-minimal.toml
Without it building fails
2023-09-22 15:50:12 +02:00
Jeremy Soller b7158212e2
Update cookbook, add openjk to jeremy config 2023-09-20 15:26:28 -06:00
Jeremy Soller d5f1d198a4
Update cookbook 2023-09-20 14:33:49 -06:00
Jeremy Soller 419d68052b
config/x86_64/jeremy: add more recipes 2023-09-20 10:51:04 -06:00
Jeremy Soller bebb92906e
Update cookbook 2023-09-20 10:50:39 -06:00
Jeremy Soller e4ee2628de
Update cookbook 2023-09-20 09:46:42 -06:00
Jeremy Soller 3a91854a43
Update relibc 2023-09-13 11:50:00 -06:00
Jeremy Soller 7137eb2cf4 Merge branch 'rw_van_230912' into 'master'
Add nushell to demo and ci configs

See merge request redox-os/redox!1367
2023-09-13 14:49:23 +00:00
Ron Williams 172761067e Add nushell to demo and ci configs 2023-09-12 18:19:11 -07:00
Jeremy Soller 69183b3bd8
Clean relibc before build 2023-09-11 12:44:10 -06:00
Jeremy Soller 984823d22c
Change d.recipe to u.recipe 2023-09-11 11:22:27 -06:00
Jeremy Soller adeac79e3e
Update relibc 2023-09-11 10:30:08 -06:00
Jeremy Soller 8edbb4765b
config/x86_64/ci: disable vice 2023-09-11 10:24:31 -06:00
Jeremy Soller ec2d83f7e2
config/x86_64/jeremy: disable vice 2023-09-11 10:02:20 -06:00
Jeremy Soller 5ab8000776
Update cookbook 2023-09-11 09:58:36 -06:00
Jeremy Soller 2899916e1b
Update relibc 2023-09-11 09:55:36 -06:00
Jeremy Soller 0ddacf08f7
Add dos2unix to ubuntu bootstrap 2023-09-11 09:28:25 -06:00
Jeremy Soller ecaac1b327
Update cookbook and relibc 2023-09-11 09:21:15 -06:00
Jeremy Soller 0125db9cca
Update cookbook 2023-09-11 08:34:58 -06:00
Jeremy Soller 87a4b14cd9
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2023-09-11 08:13:28 -06:00
Jeremy Soller a17165d3c7
Update cookbook 2023-09-11 08:13:22 -06:00
Jeremy Soller 55bf0d1dc7 Use filesystem image instead of harddrive image for dual boot script 2023-09-10 20:56:54 -06:00
Jeremy Soller f338d6e86e Add dual boot script (for use with Pop) 2023-09-10 20:49:18 -06:00
Jeremy Soller d7d19ca927
Update cookbook 2023-09-09 20:04:33 -06:00
Jeremy Soller 9acc333bf6
Update cookbook 2023-09-09 19:09:11 -06:00
Jeremy Soller 3d6917e94b
Update cookbook 2023-09-09 19:02:59 -06:00
Jeremy Soller 364fa39683
Update relibc 2023-09-09 18:59:33 -06:00
Jeremy Soller 492739f877
Update cookbook and relibc 2023-09-09 12:18:22 -06:00
Jeremy Soller 10794f3c2b
Disable dash in CI due to compilation errors 2023-09-09 12:17:32 -06:00
Jeremy Soller 4400396b09
Add d.package target for unfetching, update cookbook 2023-09-09 09:15:55 -06:00
Jeremy Soller 0207a9b982
Update cookbook and relibc 2023-09-09 09:12:56 -06:00
Jeremy Soller 3d7424e8b3
Update cookbook 2023-09-09 07:54:31 -06:00
Jeremy Soller 95a419e5c6
Update cookbook 2023-09-09 07:23:02 -06:00
Jeremy Soller 0c0aa0cd08
Add xxd and libmpfr-dev to ubuntu bootstrap 2023-09-08 15:22:52 -06:00
Jeremy Soller 498deea753
Fix name of binutils tarball 2023-09-08 14:18:17 -06:00
Jeremy Soller 46677b214a
Update cookbook 2023-09-08 13:25:20 -06:00
Jeremy Soller 6f171b0ac0
Update binutils and gcc 2023-09-08 13:23:41 -06:00
Jeremy Soller ff77c39cdb
Update rust 2023-09-07 21:10:32 -06:00
Jeremy Soller 48d494f06a
Update rust to nightly-2023-09-07 2023-09-07 20:13:54 -06:00
Jeremy Soller f196ddf764 Merge branch 'master' into 'master'
Add libfuse3-dev to podman container build

See merge request redox-os/redox!1365
2023-09-01 17:28:39 +00:00
Ross Schulman d464bf3cad Add libfuse3-dev to podman container build 2023-09-01 13:11:36 -04:00
Jeremy Soller 5cd9bcf0f8 Merge branch 'rw_van_230901' into 'master'
update SHA to use fixed zlib recipe

See merge request redox-os/redox!1364
2023-08-31 23:05:41 +00:00
Ron Williams a4962bf616 update SHA to use fixed zlib recipe 2023-08-31 16:00:47 -07:00
Jeremy Soller 079025ad87 Merge branch 'add-protobuf-compiler' into 'master'
Add protobuf-compiler package

See merge request redox-os/redox!1363
2023-08-25 15:05:53 +00:00
Ribbon c8011954b6 Add protobuf-compiler package 2023-08-25 13:42:14 +00:00
Jeremy Soller 77c95bd7f6 Merge branch 'quote-tips' into 'master'
Quote the development tips on CONTRIBUTING

See merge request redox-os/redox!1362
2023-08-21 19:42:44 +00:00
Ribbon 88afdafc0b Quote the development tips on CONTRIBUTING 2023-08-21 19:35:56 +00:00
Jeremy Soller e1f665bec6
Update submodules 2023-08-21 09:43:31 -06:00
Jeremy Soller e79b5125ad Merge branch 'quote-developer-faq' into 'master'
Add the Developer FAQ on CONTRIBUTING

See merge request redox-os/redox!1361
2023-08-21 15:40:16 +00:00
Ribbon 7f3b636540 Add the Developer FAQ on CONTRIBUTING 2023-08-21 15:31:52 +00:00
Jeremy Soller 0b143007f9 Merge branch 'fix-build' into 'master'
Fix the out of space error on make image

See merge request redox-os/redox!1359
2023-08-12 00:57:06 +00:00
Jeremy Soller 9bcb69e9da Merge branch 'add-ant-package' into 'master'
Add ant package

See merge request redox-os/redox!1360
2023-08-12 00:56:14 +00:00
Ribbon 32ae16e3c3 Add ant package 2023-08-11 10:42:40 +00:00
Ribbon 6278ed9c2e Fix the out of space error on make image 2023-08-11 06:24:18 +00:00
Jeremy Soller 48562716a3 Merge branch 'add-recipes' into 'master'
Add recipes and new config on x86_64, i686 and ARM64

See merge request redox-os/redox!1358
2023-08-09 23:05:39 +00:00
Ribbon 73e0f46b5c Add recipes and new config on x86_64, i686 and ARM64 2023-08-09 21:36:17 +00:00
Jeremy Soller c23b6f3538
Update cookbook 2023-08-07 14:22:17 -06:00
Jeremy Soller df79669bab
Update relibc 2023-08-07 09:35:31 -06:00
Jeremy Soller 7925e99942 Merge branch 'cleanup' into 'master'
Improve/cleanup the HARDWARE.md

See merge request redox-os/redox!1357
2023-08-02 21:53:36 +00:00
Ribbon 932a1c699e Improve/cleanup the HARDWARE.md 2023-08-02 21:53:36 +00:00
Jeremy Soller 0115e89579
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2023-08-02 12:04:31 -06:00
Jeremy Soller b8e1caa926
Update cookbook 2023-08-02 12:04:26 -06:00
Jeremy Soller 7b138cfa25 Merge branch 'add-packages' into 'master'
Add Lua/g++ packages and format the commands vertically

See merge request redox-os/redox!1355
2023-08-02 15:28:18 +00:00
Jeremy Soller c595f96713 Merge branch 'convert-hardware' into 'master'
Convert "HARDWARE.md" to global compatibility

See merge request redox-os/redox!1356
2023-08-02 15:25:59 +00:00
Jeremy Soller 2a3632cd48 Merge branch 'master' into 'master'
configs: misc changes for VT switching

See merge request redox-os/redox!1354
2023-08-02 15:11:15 +00:00
Ribbon ea16670e3e Convert "HARDWARE.md" to global compatibility 2023-07-27 19:09:29 +00:00
Ribbon e062980e4e Add Lua/g++ packages and format the commands vertically 2023-07-25 22:25:28 +00:00
Anhad Singh b33f12e6d2
configs: misc changes for VT switching
Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com>
2023-07-25 19:26:38 +10:00
Jeremy Soller 7c9a6721e8
ci: disable pango, it is not compiling 2023-07-17 08:01:28 -06:00
Jeremy Soller a8db3fc7af Merge branch 'tracking-issues-index' into 'master'
Add tracking issues index on CONTRIBUTING

See merge request redox-os/redox!1352
2023-07-11 13:26:09 +00:00
Ribbon da6bf005d2 Add tracking issues index on CONTRIBUTING 2023-07-08 02:42:11 +00:00
Jeremy Soller 5feed0a7c6
Update cookbook 2023-07-07 09:29:42 -06:00
Jeremy Soller 3a1b960bd4
Add option for virtio networking 2023-07-07 09:23:52 -06:00
Jeremy Soller 5e89a28c5a
Add vga=virtio qemu option 2023-07-07 08:47:44 -06:00
Jeremy Soller 26cde4388c
Update jeremy configs 2023-07-07 08:24:29 -06:00
Jeremy Soller f9f8faf037
Update submodules 2023-07-07 08:22:40 -06:00
Jeremy Soller 287df06afe
Add QEMU option for rtl8139 2023-07-07 08:21:57 -06:00
Jeremy Soller d05eb5ea42 Merge branch 'master' into 'master'
configs: misc changes for GPU drivers

See merge request redox-os/redox!1351
2023-07-07 14:09:15 +00:00
Anhad Singh 8d4c36ec5e
configs: misc changes for GPU drivers
* Do not pass the display path to orbital
* Getty should open at display/vesa:2

Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com>
2023-07-07 17:52:44 +10:00
Anhad Singh c8054080e9
configs: do not pass the display path to orbital
Signed-off-by: Anhad Singh <andypythonappdeveloper@gmail.com>
2023-07-06 16:29:44 +10:00
Jeremy Soller 7884a276a4 Merge branch 'porting-page-quote' into 'master'
Quote the "Porting Applications using Recipes" page on CONTRIBUTING

See merge request redox-os/redox!1347
2023-07-05 00:42:37 +00:00
Jeremy Soller c38794225b Merge branch 'update-tracking-issues' into 'master'
Update tracking issues

See merge request redox-os/redox!1349
2023-07-04 11:38:19 +00:00
Ribbon e6364f5ba5 Update tracking issues 2023-07-01 16:18:38 +00:00
Jeremy Soller 31ef260146
Update relibc 2023-06-30 14:54:03 -06:00
Jeremy Soller 4c7ffb7fea
Update relibc 2023-06-24 19:52:05 -06:00
Jeremy Soller c95aebe9cc Merge branch 'makefile_delete_repo' into 'master'
Delete cookbook/repo during clean

See merge request redox-os/redox!1348
2023-06-22 22:02:36 +00:00
joshua Williams 95f7597e43 Delete cookbook/repo during clean 2023-06-22 22:02:36 +00:00
Jeremy Soller ed729eb426
Update relibc 2023-06-13 07:54:30 -06:00
Ribbon 6d00f68cc9 Quote the "Porting Applications using Recipes" page on CONTRIBUTING 2023-06-11 00:30:20 +00:00
Jeremy Soller b968d2b82e
Update cookbook 2023-06-09 12:46:47 -06:00
Jeremy Soller ed0ae90353
Add pixelcannon to i686 demo 2023-06-09 12:24:37 -06:00
Jeremy Soller 3d14903793
scripts/ventoy.sh: also build and copy demo config, sync after finishing 2023-06-09 12:24:15 -06:00
Jeremy Soller 6c5658e140
Update cookbook and relibc 2023-06-09 12:24:14 -06:00
Jeremy Soller 4d86de55f4 Merge branch 'live-fix' into 'master'
Force rebuild live target like an image target

See merge request redox-os/redox!1346
2023-06-09 18:10:42 +00:00
uuuvn d8f24a0037
Force rebuild live target like an image target 2023-06-08 10:37:35 +00:00
Jeremy Soller 58243cb56b Merge branch 'build-on-aarch64-host' into 'master'
Build redox on aarch64 host

See merge request redox-os/redox!1345
2023-06-07 13:41:46 +00:00
uuuvn cdee3406af
Add server config for aarch64 target 2023-06-07 11:32:40 +00:00
uuuvn 5554ba3cd6
Allow KVM if host architecture is the same as a guest's one 2023-06-07 11:28:15 +00:00
uuuvn 28268bf703
Add support for non-x86 hosts 2023-06-06 15:31:47 +00:00
uuuvn 417c417588
Make libc6-dev-i386 and syslinux-utils required only on x86 hosts because they aren't exist in ubuntu arm repos 2023-06-06 15:31:47 +00:00
Jeremy Soller 7ce1b6d50a Merge branch 'fix-broken-bootstrap' into 'master'
Fix bootstrap.sh broken by 0661eb5d

See merge request redox-os/redox!1344
2023-06-06 15:01:24 +00:00
uuuvn 799323be97
Fix bootstrap.sh broken by 0661eb5d 2023-06-06 14:32:16 +00:00
Jeremy Soller 0661eb5d1d Merge branch 'update-platform-support' into 'master'
Complete platform support

See merge request redox-os/redox!1343
2023-06-05 23:07:40 +00:00
Ribbon dfb9e115b8 Complete platform support 2023-06-05 23:07:40 +00:00
Jeremy Soller b128c6e6b8
Update cookbook and relibc 2023-05-31 19:14:56 -06:00
Jeremy Soller 099362f546 Merge branch 'rw_van_230525' into 'master'
update cookbook SHA, correct bootstrap and containerfile libraries

See merge request redox-os/redox!1342
2023-05-27 12:43:15 +00:00
Ron Williams a970e0620f fix error in containerfile 2023-05-26 18:11:40 -07:00
Ron Williams f4ac3742d5 correct typo in Fedora libraries 2023-05-26 18:01:36 -07:00
Ron Williams 47aa0b4010 update cookbook SHA, correct bootstrap and containerfile libraries 2023-05-26 03:09:21 -07:00
Jeremy Soller e9e9cc7dda Merge branch 'rust-build-std' into 'master'
Build rustlib/src together with prefix

See merge request redox-os/redox!1340
2023-05-22 15:55:13 +00:00
uuuvn 0da79d81b4
Build rustlib/src together with prefix 2023-05-22 08:42:41 +00:00
Jeremy Soller 10e7b59314 Merge branch 'restore-libpng-dev' into 'master'
Restore libpng-dev (fix NetSurf compilation)

See merge request redox-os/redox!1339
2023-05-22 01:42:17 +00:00
Ribbon 1d79518b6b Restore libpng-dev 2023-05-22 01:04:28 +00:00
Jeremy Soller ce4ee49e7a Merge branch 'update-contributing' into 'master'
Improve/update CONTRIBUTING

See merge request redox-os/redox!1338
2023-05-21 22:53:03 +00:00
Ribbon 4737597fbb Improve/update CONTRIBUTING 2023-05-21 22:12:51 +00:00
Jeremy Soller 9ba9bc13d1 Merge branch 'master' into 'master'
Remove unused packages and add doxygen

See merge request redox-os/redox!1337
2023-05-21 11:36:39 +00:00
Jeremy Soller a288411f25
Disable retroarch recipe, update cookbook 2023-05-19 13:45:14 -06:00
Ribbon 9e6c078a97 Add doxygen package 2023-05-19 07:29:29 +00:00
Ribbon e94ddce3bc Remove unused packages 2023-05-18 23:58:33 +00:00
Jeremy Soller 7ac208cf30
Update cookbook 2023-05-18 13:18:21 -06:00
Jeremy Soller 133ed1cfef
Update cookbook 2023-05-18 12:18:52 -06:00
Jeremy Soller 20b70cdfc0
Update cookbook and relibc 2023-05-17 09:19:36 -06:00
Jeremy Soller 8afa0fed2a
Update relibc 2023-05-12 13:05:33 -06:00
Jeremy Soller fca5cc30a3
Update relibc 2023-05-11 21:00:32 -06:00
Jeremy Soller 07a483a127
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2023-05-11 17:18:31 -06:00
Jeremy Soller dc6c34fcb4
Update relibc 2023-05-11 17:18:25 -06:00
Jeremy Soller f169c355a6 Merge branch 'master' into 'master'
Remove Lua packages

See merge request redox-os/redox!1336
2023-05-11 22:31:26 +00:00
Jeremy Soller 81e54a31d4
Update cookbook 2023-05-11 16:20:25 -06:00
Ribbon cb7a9e16ea Remove Lua packages 2023-05-11 22:19:25 +00:00
Jeremy Soller 5b6ef5fdcb
Update relibc 2023-05-11 14:46:55 -06:00
Jeremy Soller 4c63c0a95f
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2023-05-11 12:50:46 -06:00
Jeremy Soller 59ce838bb4
Update relibc and rust 2023-05-11 12:50:41 -06:00
Jeremy Soller cefad848d7 Merge branch 'master' into 'master'
Update maintainers

See merge request redox-os/redox!1335
2023-05-11 18:17:20 +00:00
Ribbon 7129de67df Update maintainers 2023-05-11 18:17:20 +00:00
Jeremy Soller 93e81d1023 Merge branch 'master' into 'master'
Add packages

See merge request redox-os/redox!1334
2023-05-11 17:07:57 +00:00
Ribbon 827ee06fd7 Add packages 2023-05-11 17:07:57 +00:00
Jeremy Soller 08c2589611
Update relibc 2023-05-11 10:42:02 -06:00
Jeremy Soller a88aded540
Update relibc and rust 2023-05-11 08:06:49 -06:00
Jeremy Soller 7cbd57a0ec
Add ventoy script 2023-05-10 20:25:07 -06:00
Jeremy Soller b8dd0cc8cb
Add cookbook 2023-05-08 08:14:16 -06:00
Jeremy Soller 51a08c66f7
Update cookbook 2023-05-06 12:51:14 -06:00
Jeremy Soller b23109cec5
Name QEMU windows 2023-05-06 12:51:07 -06:00
Jeremy Soller b3d4e87480
Add flycast to jeremy config 2023-05-06 12:32:33 -06:00
Jeremy Soller 20d4369c27
Update cookbook and relibc 2023-05-06 08:21:44 -06:00
Jeremy Soller ce9daf6c9d
Update cookbook 2023-05-05 13:40:07 -06:00
Jeremy Soller 92ed5c09f1 Merge branch 'master' into 'master'
Fix running qemu with aarch64 on MacOS

See merge request redox-os/redox!1332
2023-05-01 13:02:08 +00:00
Jeremy Soller abe631aaa2 Merge branch 'master' into 'master'
Add build system documentation section.

See merge request redox-os/redox!1333
2023-05-01 13:01:13 +00:00
Ribbon c5d1999960 Add build system documentation section. 2023-04-30 07:26:04 +00:00
Will Angenent 025cf84c86 Fix running qemu with aarch64 on MacOS 2023-04-29 15:27:20 +01:00
Jeremy Soller a2cec65548
Update nghttp2 hash 2023-04-28 08:41:22 -06:00
Jeremy Soller 18c97102aa
Update cookbook 2023-04-27 17:35:02 -06:00
Jeremy Soller d35f81ee3a
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2023-04-26 11:44:27 -06:00
Jeremy Soller e02b811d21
Update cookbook 2023-04-26 11:44:22 -06:00
Jeremy Soller 1187726034
Update cookbook 2023-04-19 10:03:12 -06:00
Jeremy Soller 94acfbe2d3
Disable relibc-tests in CI 2023-04-18 17:11:50 -06:00
Jeremy Soller e3150f7d4d
Enable cargo in CI 2023-04-18 08:41:30 -06:00
Jeremy Soller 2ae7a392a7 Merge branch 'unset-cc-and-cxx-in-prefix-build' into 'master'
Two fixes for the MacOS prefix build

Closes #1372

See merge request redox-os/redox!1331
2023-04-17 14:27:44 +00:00
Will Angenent 9b842be049 Added texinfo as a dependency for building prefix in MacOS 2023-04-15 18:41:42 +01:00
Will Angenent 2b1619c1e0 Unset CC and CXX before building prefix, since they could interfere 2023-04-15 18:33:35 +01:00
Jeremy Soller 226954e8b4
Update cookbook 2023-04-15 07:14:43 -06:00
Jeremy Soller 54465ff83c
Update relibc 2023-04-15 07:11:45 -06:00
Jeremy Soller b0ba3431be
Enable Rust recipe 2023-04-14 08:05:36 -06:00
Jeremy Soller 1cf2966573 Merge branch 'update-bootstrap-brew-macfuse' into 'master'
Update brew macfuse package

See merge request redox-os/redox!1330
2023-04-12 22:12:10 +00:00
Will Angenent 697befac25 Update brew macfuse package 2023-04-12 21:57:22 +01:00
Jeremy Soller a49bdac459 Merge branch 'update-installer' into 'master'
Update installer submodule

See merge request redox-os/redox!1329
2023-04-06 14:29:04 +00:00
Will Angenent f3a1d18cd5 Update installer submodule 2023-04-05 22:38:30 +01:00
Jeremy Soller 34ecb3c2d2 Merge branch 'update-cookbook' into 'master'
Update cookbook

See merge request redox-os/redox!1328
2023-04-05 17:50:49 +00:00
Jeremy Soller 4c17eaf028 Merge branch 'fix-missing-findutils-macos-dependency' into 'master'
Add findutils dependency for MacOS

See merge request redox-os/redox!1327
2023-04-05 14:56:11 +00:00
Will Angenent 0866e5e868 Update cookbook 2023-04-04 23:13:25 +00:00
Will Angenent 59ab34d479 Add findutils dependency for MacOS 2023-04-04 20:03:37 +01:00
Jeremy Soller 8d53d7188a
Support aarch64 GUI 2023-04-04 08:14:43 -06:00
Jeremy Soller d6a7d6b4ad
Update cookbook 2023-04-03 14:12:12 -06:00
Jeremy Soller 74272b5660
Disable cargo recipe on CI 2023-04-03 13:26:04 -06:00
Jeremy Soller 46f36939eb
Update cookbook 2023-04-03 12:44:48 -06:00
Jeremy Soller 3b7d6fc18a
Increase x86_64 demo filesystem size to 1024 MiB 2023-04-03 12:40:03 -06:00
Jeremy Soller 218ca1a534
Add makefile target to run popsicle with the live ISO 2023-04-03 12:39:43 -06:00
Jeremy Soller d7f7c399c0
Update submodules 2023-04-03 11:31:51 -06:00
Jeremy Soller 3098e30a04 Merge branch 'macos-compilation-fixes' into 'master'
A couple of MacOS build fixes

See merge request redox-os/redox!1325
2023-04-03 17:16:53 +00:00
Will Angenent 8f90fc620a Add MacOS ninja and po4a build dependencies 2023-04-02 11:29:15 +01:00
Will Angenent 09eca87a41 Fix missing ftruncate on MacOS 2023-04-02 11:16:09 +01:00
Will Angenent 9463599948 Remove unnecessary sudo from MacOS umount 2023-04-02 11:16:09 +01:00
Will Angenent 7b41f437a0 Use -u when unsetting env for better portability.
Fixes the MacOS build.
2023-04-02 11:16:09 +01:00
Jeremy Soller 0de308313c Merge branch 'fix-missing-orbutils-calculator-gentoo-dependency' into 'master'
Fix gentoo dependency for orbutils/calculator

See merge request redox-os/redox!1324
2023-03-25 13:56:16 +00:00
Will Angenent 7bf83b05ac Fix gentoo dependency for orbutils/calculator 2023-03-23 19:04:48 +00:00
Jeremy Soller 79288b2d8f Merge branch 'update-installer-and-cookbook-submodules' into 'master'
Update installer and cookbook submodules

See merge request redox-os/redox!1323
2023-03-21 21:16:09 +00:00
Jeremy Soller 5acde0ab8b Merge branch 'fix-fusermount-for-gentoo' into 'master'
Detect installed fusermount or fusermount3 binary

See merge request redox-os/redox!1322
2023-03-21 20:12:53 +00:00
Will Angenent 7ee0e985fd Update installer and cookbook submodules 2023-03-21 03:28:37 +00:00
Will Angenent b0feb1b423 Detect installed fusermount or fusermount3 binary 2023-03-21 03:02:07 +00:00
Jeremy Soller dabd655621
Update redoxfs 2023-03-20 10:24:32 -06:00
Jeremy Soller 41b0f31a2e Merge branch 'master' into 'master'
Add vim package for Fedora target.

See merge request redox-os/redox!1321
2023-03-20 12:28:43 +00:00
Ribbon ff254088b4 Add vim as Fedora dependency. 2023-03-19 12:29:02 +00:00
Jeremy Soller ce9ce1b54b
Also build redoxfs-mkfs as part of fstools 2023-03-14 12:26:34 -06:00
Jeremy Soller 90dd7bb295 Merge branch 'master' into 'master'
Add/enable recipes on TOML config files.

See merge request redox-os/redox!1320
2023-03-14 16:30:02 +00:00
Ribbon cfa08ac360 Fix typo. 2023-03-14 16:25:56 +00:00
Ribbon 933e73f203 Organize recipes in alphabetical order. 2023-03-14 16:17:19 +00:00
Jeremy Soller acb0645deb
ci: add cosmic-text 2023-03-14 09:05:10 -06:00
Ribbon 3a43bda50f Add recipes on CI. 2023-03-14 00:04:55 +00:00
Ribbon d43080272c Enable recipes on CI. 2023-03-14 00:02:21 +00:00
Ribbon cc3f639f5f Add packages on x86_64 demo build. 2023-03-11 16:56:49 +00:00
Jeremy Soller c148826057
Update relibc 2023-03-10 11:34:43 -07:00
Jeremy Soller 56288468f0
Update relibc 2023-03-10 11:24:13 -07:00
Jeremy Soller 68920ba34d
Update relibc 2023-03-10 10:45:30 -07:00
Jeremy Soller 58355aa875
Update relibc 2023-03-10 10:31:39 -07:00
Jeremy Soller 8c594c9ccc
Add acid tests to demo config 2023-03-10 09:57:16 -07:00
Jeremy Soller 7be83d4254
Add new recipes to jeremy config 2023-03-10 09:57:07 -07:00
Jeremy Soller 9bba207598
Update relibc 2023-03-10 08:41:34 -07:00
Jeremy Soller 61e516cfbd
Add rebuild-recipe script 2023-03-10 07:37:26 -07:00
Jeremy Soller bdbfaae59d Merge branch 'master' into 'master'
Remove drivers-041 from x86_64 CI.

See merge request redox-os/redox!1318
2023-03-10 14:16:13 +00:00
Jeremy Soller fe3f8a7e65
Update installer 2023-03-10 07:15:47 -07:00
Jeremy Soller a729c952af Merge branch 'rw_van_230310' into 'master'
enable build from mixed source/binary packages

See merge request redox-os/redox!1319
2023-03-10 14:15:26 +00:00
Ron Williams be957aa4d7 enable build from mixed source/binary packages 2023-03-09 23:30:33 -08:00
Ribbon d3bb5a8f6d Remove drivers-041 from x86_64 CI. 2023-03-10 04:21:33 +00:00
Jeremy Soller 189d7218f2
Update relibc 2023-03-09 20:19:39 -07:00
Jeremy Soller 4b50410d3b
Update cookbook 2023-03-09 15:02:44 -07:00
Jeremy Soller 7f40e64fde
Ensure build directory exists before touching fstools tag 2023-03-09 12:23:16 -07:00
Jeremy Soller ade8e7085a Merge branch 'rw_van_230306' into 'master'
Improve dependencies on build tools

See merge request redox-os/redox!1315
2023-03-08 20:06:11 +00:00
Jeremy Soller 0385ca384b Merge branch 'master' into 'master'
Update section of CONTRIBUTING.

See merge request redox-os/redox!1317
2023-03-08 14:31:22 +00:00
Ribbon 8b43df7ee8 Update section. 2023-03-08 02:43:45 +00:00
Jeremy Soller 062b4d2f6b Merge branch 'master' into 'master'
New section/change section title on CONTRIBUTING.

See merge request redox-os/redox!1316
2023-03-08 02:14:59 +00:00
Jeremy Soller 12b35d8495
Update cookbook 2023-03-07 16:20:02 -07:00
Ribbon bf450087e5 Improve Tracking Issues section. 2023-03-07 02:57:07 +00:00
Ribbon a6a317e064 New section/change section title. 2023-03-07 02:39:20 +00:00
Ron Williams 374e37d5b9 Improve dependencies on build tools 2023-03-06 12:41:45 -08:00
Jeremy Soller c3170d09f2
Add dosbox, games, and freepats to i686 demo 2023-03-03 20:06:25 -07:00
Jeremy Soller 09962073e2
Update relibc 2023-03-03 19:58:13 -07:00
Jeremy Soller cc100326b3
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2023-03-03 19:48:31 -07:00
Jeremy Soller 730ea6bf5b
Add dash and netsurf to i686 configs 2023-03-03 19:48:02 -07:00
Jeremy Soller 13509c283d Merge branch 'master' into 'master'
Move Chat section on CONTRIBUTING.

See merge request redox-os/redox!1314
2023-03-02 22:32:27 +00:00
Ribbon 671b5e52cc Move Chat section. 2023-03-02 22:09:50 +00:00
Jeremy Soller da88bc90be Merge branch 'master' into 'master'
More improvements/cleanup of CONTRIBUTING/README.

See merge request redox-os/redox!1313
2023-03-02 15:17:00 +00:00
Ribbon c152347ffa More cleanup. 2023-03-02 08:06:59 +00:00
Ribbon 9fc9b754a1 Restore GitLab screenshots. 2023-03-02 07:54:52 +00:00
Ribbon 6d68bf5a4f Big README cleanup/improvements. 2023-03-02 07:40:53 +00:00
Ribbon d006ce6c0f Cleanup of CONTRIBUTING. 2023-03-02 07:16:12 +00:00
Ribbon 5f15a75f7a Little changes. 2023-03-01 23:03:41 +00:00
Jeremy Soller 71b1a30e98 Merge branch 'master' into 'master'
Little changes on CONTRIBUTING.

See merge request redox-os/redox!1312
2023-03-01 21:45:26 +00:00
Ribbon 6845f811f1 Little changes. 2023-03-01 21:36:59 +00:00
Jeremy Soller e125b4fba0 Merge branch 'master' into 'master'
Small CONTRIBUTING improvements.

See merge request redox-os/redox!1311
2023-03-01 21:03:12 +00:00
Ribbon 0f666cecb9 Little change on CONTRIBUTING. 2023-03-01 20:55:37 +00:00
Ribbon 3bd033a533 Improve CONTRIBUTING. 2023-03-01 20:47:51 +00:00
Jeremy Soller b4b657ecd1
ci: add freepats package 2023-03-01 13:47:08 -07:00
Jeremy Soller 9145a42b23 Merge branch 'master' into 'master'
Correct License information.

See merge request redox-os/redox!1310
2023-03-01 20:27:37 +00:00
Jeremy Soller cee3cef510
Build installer before make ci-img 2023-03-01 13:27:09 -07:00
Ribbon c5194362a1 Correct License information. 2023-03-01 20:18:19 +00:00
Jeremy Soller cdf9a708f0
GitLab CI: Set REPO_BINARY=1 2023-03-01 13:04:58 -07:00
Jeremy Soller bfde266b90
Restore dependency install from old CI script 2023-03-01 12:44:37 -07:00
Jeremy Soller bcb81e3e3f
GitLab CI: Set PATH to include rustup before bootstrap 2023-03-01 12:11:51 -07:00
Jeremy Soller b568b4d53e
Go back to GIT_STRATEGY clone for gitlab CI 2023-03-01 12:00:13 -07:00
Jeremy Soller 1ff5252a3a
Go back to default GIT_STRATEGY 2023-03-01 11:50:15 -07:00
Jeremy Soller a347c53de6
Do not use sudo for gitlab CI 2023-03-01 11:49:58 -07:00
Jeremy Soller d4bc4c38a1
Install curl for gitlab CI 2023-03-01 11:42:57 -07:00
Jeremy Soller 29f8be9f65
Force clone in gitlab CI 2023-03-01 11:38:18 -07:00
Jeremy Soller a675725d7a
Install rustup in gitlab CI 2023-03-01 11:36:51 -07:00
Jeremy Soller b5d5d69589
Fix bootstrap script path in gitlab CI 2023-03-01 11:32:53 -07:00
Jeremy Soller 4db6bc6da5
Simplify Redox CI 2023-03-01 11:22:47 -07:00
Jeremy Soller d213812197 Merge branch 'master' into 'master'
Fix book link.

See merge request redox-os/redox!1309
2023-03-01 16:29:12 +00:00
Ribbon 6c0d200c08 Fix book link. 2023-03-01 16:09:22 +00:00
Jeremy Soller 359a3b30c2 Merge branch 'master' into 'master'
Improvements/cleanup on CONTRIBUTING.

See merge request redox-os/redox!1308
2023-03-01 15:15:30 +00:00
Ribbon 2eb18ab097 Move a list of repositories from Community website page. 2023-03-01 04:22:45 +00:00
Ribbon 74316e71e9 More cleanup of CONTRIBUTING. 2023-03-01 00:07:12 +00:00
Ribbon 0d8656c3e4 Improve organization and cleanup. 2023-02-28 23:53:52 +00:00
Ribbon cbd5868956 Move section from book and new section. 2023-02-28 21:05:55 +00:00
Jeremy Soller f26bbff55e Merge branch 'master' into 'master'
Cleanup CONTRIBUTING (deduplication/old stuff).

See merge request redox-os/redox!1306
2023-02-28 12:30:15 +00:00
Ribbon 65687a1962 Add a "License" section. 2023-02-28 09:23:53 +00:00
Ribbon 0f4a97e919 More cleanup/improvements. 2023-02-28 08:52:59 +00:00
Ribbon 84f87c2892 Remove kernel section/HTML syntax and update internal hyperlinks. 2023-02-28 08:18:45 +00:00
Ribbon f42a7ebb16 Cleanup CONTRIBUTING (deduplication/old stuff). 2023-02-27 19:42:16 +00:00
Jeremy Soller 4238c91f20
Update cookbook 2023-02-25 10:05:46 -07:00
Jeremy Soller b87fb11f7f
Ensure symlinks are located in find-recipe.sh 2023-02-25 09:35:43 -07:00
Jeremy Soller 0eb41b7820
Remove old changelog.sh 2023-02-25 09:33:00 -07:00
Jeremy Soller 1156bf27e6
Add find-recipe.sh, move changelog.sh to scripts 2023-02-25 09:32:35 -07:00
Jeremy Soller bbeb98c7e9 Merge branch 'master' into 'master'
Update Fedora dependencies.

See merge request redox-os/redox!1305
2023-02-25 15:54:34 +00:00
Jeremy Soller 383003220c
Add f.recipe target to fetch recipes 2023-02-25 08:48:08 -07:00
Alberto Souza 0b596d60d3 Update Fedora dependencies. 2023-02-25 03:21:48 +00:00
Jeremy Soller cc0988389a ci: disable pkg-config 2023-02-24 18:31:36 -07:00
Jeremy Soller 4533e67721 Do not build orbutils split packages 2023-02-24 18:25:59 -07:00
Jeremy Soller a772152eea
Update cookbook 2023-02-24 08:31:42 -07:00
Jeremy Soller 3a276cac3b Merge branch 'master' into 'master'
Delete Podman README.

See merge request redox-os/redox!1304
2023-02-21 19:48:32 +00:00
Alberto Souza 36c154b311 Delete Podman README. 2023-02-21 19:42:57 +00:00
Jeremy Soller 3c63648d19
Remove all references to xargo 2023-02-21 11:53:37 -07:00
Jeremy Soller 91dc948dd6
Update relibc 2023-02-13 08:32:22 -07:00
Jeremy Soller 454560ce59
Update cookbook 2023-02-11 20:17:16 -07:00
Jeremy Soller bbfbb4f501
Update cookbook 2023-02-11 20:02:08 -07:00
Jeremy Soller fa8e72b3eb
Add cargo to jeremy config 2023-02-11 17:06:31 -07:00
Jeremy Soller 534d3d943f
Update cookbook 2023-02-11 17:05:57 -07:00
Jeremy Soller 58bd82c249
Update cookbook 2023-02-11 16:54:54 -07:00
Jeremy Soller 5a0567d25a
Update submodules 2023-02-11 14:52:32 -07:00
Jeremy Soller acb1675eca
Update cookbook 2023-02-11 14:06:40 -07:00
Jeremy Soller 0427f3ff8c
Update Rust to nightly-2023-01-21 2023-02-11 14:01:00 -07:00
Jeremy Soller f52ec7e30f Merge branch 'master' into 'master'
Restore a command (deleted in my branch to fix MR conflict).

See merge request redox-os/redox!1303
2023-02-08 19:52:47 +00:00
Alberto Souza 32d763e65d Restore a command (deleted in my branch to fix MR conflict). 2023-02-08 19:49:53 +00:00
Jeremy Soller 8760b5a47a Merge branch 'master' into 'master'
Add book maintainer, improve the build section and cleanup old stuff.

See merge request redox-os/redox!1302
2023-02-08 19:41:30 +00:00
Alberto Souza 0561954977 Add book maintainer, improve the build section and cleanup old stuff. 2023-02-08 19:39:27 +00:00
Jeremy Soller fea33aaec5 Merge branch 'hatred_45-master-patch-05095' into 'master'
Update Redox chat link, cleanup old stuff, add "make rebuild" command and update contribute link.

See merge request redox-os/redox!1300
2023-02-06 13:13:00 +00:00
Alberto Souza 7d45f8a106 Improve explanation. 2023-02-06 11:02:34 +00:00
Alberto Souza 2b6d8d9615 Add/cleanup stuff. 2023-02-06 10:50:45 +00:00
Alberto Souza 4a5bfa56fd Update Redox chat and cleanup old stuff. 2023-02-06 10:19:55 +00:00
Jeremy Soller a3200daca9 Merge branch 'master' into 'master'
Add new Fedora packages to fix compilation errors on bootstrap.

See merge request redox-os/redox!1298
2023-02-05 12:57:38 +00:00
Alberto Souza ac651d93bc Add new Fedora packages to fix compilation errors on bootstrap. 2023-02-05 06:42:48 +00:00
Jeremy Soller 9792ff63a0
Add i686 demos 2023-01-30 10:56:02 -07:00
Jeremy Soller 8f37e0deb5 Add vga=multi argument 2023-01-20 11:53:29 -07:00
Jeremy Soller b42080deca Add clean target for individual recipes 2023-01-20 11:53:05 -07:00
Jeremy Soller 0cc2a5e4f4 Update cookbook 2023-01-20 10:53:54 -07:00
Jeremy Soller a02a19e871 Update cookbook 2023-01-20 10:44:06 -07:00
Jeremy Soller eb49efa7ba Update cookbook 2023-01-20 09:39:20 -07:00
Jeremy Soller d9e4a899f6 Update cookbook 2023-01-18 11:00:34 -07:00
Jeremy Soller c98b91258f Update relibc 2023-01-17 22:12:02 -07:00
Jeremy Soller 1ccf80862e Update cookbook 2023-01-12 21:20:25 -07:00
Jeremy Soller 4bd7cf6246 Add installer-gui to all desktop configurations 2023-01-12 09:40:46 -07:00
Jeremy Soller 7f0e2a8f98 Update relibc 2023-01-12 08:14:10 -07:00
Jeremy Soller 8fe50e761b Update cookbook 2023-01-12 07:17:09 -07:00
Jeremy Soller 48a011a66a Make image target remove live disk too 2023-01-11 21:31:21 -07:00
Jeremy Soller f823cce0aa Update installer 2023-01-11 14:12:16 -07:00
Jeremy Soller b199398c1d Fix qemu disk argument 2023-01-11 11:01:09 -07:00
Jeremy Soller 163953aa22 Merge branch 'rw_van_221221' into 'master'
Set PODMAN_BUILD=1 in .config

See merge request redox-os/redox!1297
2022-12-21 07:26:45 +00:00
Ron Williams 45bc844d85 Set PODMAN_BUILD=1 in .config 2022-12-20 20:20:42 -08:00
Jeremy Soller 7cdff1157e
Update cookbook 2022-12-19 13:26:06 -07:00
Jeremy Soller 9624682161
Update cookbook and relibc 2022-12-19 10:21:52 -07:00
Jeremy Soller 291f29df91 Update cookbook and relibc 2022-12-19 09:10:30 -07:00
Jeremy Soller 5b4ee80e10 Build Rust source tarball as part of rust-install 2022-12-18 08:06:28 -07:00
Jeremy Soller 8a69678ea5
Update cookbook 2022-12-17 07:25:26 -07:00
Jeremy Soller ffa17eaeb1 Merge branch 'rw_van_221216' into 'master'
Add image and r.PACKAGE targets

See merge request redox-os/redox!1296
2022-12-17 03:33:05 +00:00
Ron Williams 1bc9362245 Add image and r.PACKAGE targets 2022-12-16 19:23:19 -08:00
Jeremy Soller 8a4b12150b Add mednafen to jeremy config 2022-12-16 20:16:46 -07:00
Jeremy Soller 26e94389bc Update cookbook and relibc 2022-12-16 20:16:37 -07:00
Jeremy Soller c8aaa9b635
Update cookbook 2022-12-16 14:39:05 -07:00
Jeremy Soller 1ddf22a3d6
Add pathfinder to jeremy config 2022-12-16 10:31:58 -07:00
Jeremy Soller 09a231886e
Update cookbook 2022-12-16 10:29:03 -07:00
Jeremy Soller 1627808cf4
Add webrender to jeremy config 2022-12-15 11:56:57 -07:00
Jeremy Soller 42727be046
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2022-12-15 11:56:24 -07:00
Jeremy Soller 8c48292181
Update cookbook 2022-12-15 11:56:17 -07:00
Jeremy Soller 2368bf774c Add hematite to jeremy config 2022-12-14 20:08:17 -07:00
Jeremy Soller 7203d2965c Add noto emoji and re-enable libcosmic in jeremy config 2022-12-09 11:43:40 -07:00
Jeremy Soller 83ad194b85 Update cookbook 2022-12-09 11:37:26 -07:00
Jeremy Soller e116e662e5
Update cookbook 2022-12-08 09:15:56 -07:00
Jeremy Soller 34219da199 Update cookbook 2022-12-07 22:36:16 -07:00
Jeremy Soller 7ae94b8776
Update cookbook 2022-12-06 15:36:05 -07:00
Jeremy Soller 3e19af6055
Add pop icon theme to jeremy config, update cookbook 2022-12-06 09:48:04 -07:00
Jeremy Soller 5a73d24240
Update cookbook 2022-12-06 08:44:20 -07:00
Jeremy Soller ef1f52fb67
Add iced and re-inable winit in jeremy config 2022-12-06 07:25:35 -07:00
Jeremy Soller 93fcb74f84
Add more packages to jeremy i686 config 2022-12-05 14:32:33 -07:00
Jeremy Soller c21467e4ac
Update cookbook 2022-12-05 14:29:46 -07:00
Jeremy Soller a994894017
Update cookbook 2022-12-05 08:54:12 -07:00
Jeremy Soller b779976c5c Merge branch 'podman-fontconfig' into 'master'
Add libfontconfig to podman container file

See merge request redox-os/redox!1295
2022-12-04 14:51:34 +00:00
Florian Blasius c0abcd39ac Update podman/redox-base-containerfile 2022-12-04 14:46:19 +00:00
Jeremy Soller 42acdf1089
Fix CI image build 2022-12-02 17:22:44 -07:00
Jeremy Soller 9d9ca8cba8
Update cookbook 2022-12-02 10:45:32 -07:00
Jeremy Soller 72f120a70d
Update cookbook 2022-12-02 08:26:06 -07:00
Jeremy Soller 40f7f9796d
Update relibc and rust 2022-12-02 08:15:52 -07:00
Jeremy Soller ed5197f9fd
Update rust 2022-12-01 20:05:34 -07:00
Jeremy Soller dc02cb7898
Update cookbook and rust 2022-12-01 18:47:32 -07:00
Jeremy Soller 939f81a0b5
Update relibc 2022-12-01 18:33:10 -07:00
Jeremy Soller ea5fe6b3cd
Disable winit (due to missing tzset) 2022-12-01 14:55:25 -07:00
Jeremy Soller 85dbbd0269
Add pixelcannon to demo 2022-12-01 14:36:33 -07:00
Jeremy Soller 5dfb24f01b
Update relibc 2022-12-01 14:31:10 -07:00
Jeremy Soller 9a1d06a48c
Update cookbook 2022-12-01 14:30:57 -07:00
Jeremy Soller 0534532e8f
Add crates.io index to dev config 2022-11-30 18:14:52 -07:00
Jeremy Soller 78650fed61
Update cookbook 2022-11-30 18:14:36 -07:00
Jeremy Soller 862342041a
Update cookbook 2022-11-30 08:16:55 -07:00
Jeremy Soller 8c657e50fb Merge branch 'rw_van_221126' into 'master'
Add dependencies for Neverball, plus podman.mk fixes

See merge request redox-os/redox!1294
2022-11-27 10:10:44 +00:00
Ron Williams eb49e17fc2 Fix indents in bootstrap.sh 2022-11-26 21:11:47 -08:00
Ron Williams aea97d0a11 Update podman and bootstrap for Neverball 2022-11-26 21:07:04 -08:00
Jeremy Soller e82bbf053e Merge branch 'hw_lenovo_g570' into 'master'
HARDWARE.md: Add Lenovo G570

See merge request redox-os/redox!1293
2022-11-24 20:55:03 +00:00
Nagy Tibor 64ce34d957 HARDWARE.md: Add Lenovo G570 2022-11-24 21:46:15 +01:00
Jeremy Soller 42a29bb903 Merge branch 'hw_asus_x554l' into 'master'
HARDWARE.md: Add Asus X554L

See merge request redox-os/redox!1292
2022-11-24 14:09:28 +00:00
Nagy Tibor e9160396ed HARDWARE.md: Add Asus X554L 2022-11-24 14:25:57 +01:00
Jeremy Soller c8634bd989
Fix ci-img 2022-11-23 13:58:56 -07:00
Jeremy Soller 8c0bd65974
Update cookbook 2022-11-23 13:08:32 -07:00
Jeremy Soller b7f1a0f4d4
Disable ffmpeg in CI 2022-11-23 12:52:16 -07:00
Jeremy Soller bb2795014e
Remove blurb about sound not being supported 2022-11-23 12:51:17 -07:00
Jeremy Soller 7332094aad
Add rust to changelog 2022-11-23 11:26:37 -07:00
Jeremy Soller 7558f4b161
Changelog script improvements 2022-11-23 10:59:53 -07:00
Jeremy Soller 008598457d
Add changelog helper script 2022-11-23 10:37:35 -07:00
Jeremy Soller 99a23e9041
Bump version to 0.8.0 pending release 2022-11-23 09:25:06 -07:00
Jeremy Soller 3f793df8ad
Update cookbook 2022-11-22 15:57:40 -07:00
Jeremy Soller 98dc91e4b2
Update installer 2022-11-21 14:55:21 -07:00
Jeremy Soller 316f9e24e3 Add freepats to jeremy config 2022-11-21 09:01:59 -07:00
Jeremy Soller e2ef6cfddd Add freepats to demo 2022-11-21 09:01:36 -07:00
Jeremy Soller 399ef37fba Update cookbook 2022-11-20 12:45:47 -07:00
Jeremy Soller d2ea1b4d10 Update cookbook 2022-11-20 09:59:20 -07:00
Jeremy Soller cdf2b72eaa
Reduce size of jeremy and server images on i686 2022-11-16 13:54:22 -07:00
Jeremy Soller 4978041802
Adjust jeremy config for i686 2022-11-16 12:55:21 -07:00
Jeremy Soller 9a971c8c74
Add i686 jeremy config 2022-11-16 12:44:23 -07:00
Jeremy Soller 5c945f5776
Update cookbook 2022-11-16 12:35:13 -07:00
Jeremy Soller e5701a9a9e
Add cosmic-text to jeremy config 2022-11-16 12:35:07 -07:00
Jeremy Soller 13c5790bb6
Use ac97 by default on i686 2022-11-16 12:34:48 -07:00
Jeremy Soller cf3fa0219f
Re-enable bash 2022-11-16 11:35:14 -07:00
Jeremy Soller 7f8082bd33
Update cookbook 2022-11-16 11:29:42 -07:00
Jeremy Soller fab8de1b33
Update cookbook 2022-11-16 10:02:12 -07:00
Jeremy Soller 948069b0a4
Update cookbook 2022-11-16 09:20:24 -07:00
Jeremy Soller f1f8b2e751 Merge branch 'rw_van_221118' into 'master'
Move Rust install to build dir

See merge request redox-os/redox!1291
2022-11-15 23:20:57 +00:00
Ron Williams 09bd6b1bc2 Move Rust install to build dir 2022-11-15 15:06:11 -08:00
Jeremy Soller b976d58a2a
Update cookbook 2022-11-15 15:57:37 -07:00
Jeremy Soller 8b4707ade2 Merge branch 'rw_van_221117' into 'master'
move Rust install to a persistent container dir

See merge request redox-os/redox!1290
2022-11-15 22:18:07 +00:00
Ron Williams e86794e500 Update podman.mk 2022-11-15 22:16:54 +00:00
Jeremy Soller bf652aabbf
Increase size of demo 2022-11-15 15:14:10 -07:00
Jeremy Soller d8b2f3daa5
Add neverball and rodioplay to demo config 2022-11-15 15:12:18 -07:00
Jeremy Soller 789b7c523a
Add curl, git, and vim to dev config 2022-11-15 15:12:02 -07:00
Jeremy Soller eb75853345
Allow selecting ac97 2022-11-15 15:11:38 -07:00
Jeremy Soller c435121423
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2022-11-15 15:11:25 -07:00
Jeremy Soller fb85652883
Update jeremy config 2022-11-15 15:11:16 -07:00
Jeremy Soller 87084cb460 Merge branch 'bootstrap-fixes' into 'master'
More bootstrap.sh fixes

See merge request redox-os/redox!1276
2022-11-15 22:07:56 +00:00
Ron Williams 2e42fbb6c8 move Rust install to a persistent container dir 2022-11-15 12:35:44 -08:00
Jeremy Soller 35832abf8a
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2022-11-15 10:25:50 -07:00
Jeremy Soller 2809419d6b
Enable audio out in virtualbox 2022-11-15 10:25:44 -07:00
Jeremy Soller 43f84da98a Merge branch 'rw_van_221116' into 'master'
fix podman colors, env target and netsurf build

See merge request redox-os/redox!1289
2022-11-15 09:49:40 +00:00
Ron Williams edbea01093 fix podman colors, env target and netsurf build 2022-11-14 22:13:46 -08:00
Jeremy Soller 82babc5c5b Merge branch 'rw_van_221114' into 'master'
Edit to reflect changes to build process

See merge request redox-os/redox!1288
2022-11-13 08:55:49 +00:00
Ron Williams 5ccf751ce6 Edit to reflect changes to build process 2022-11-13 00:46:31 -08:00
Jeremy Soller ae23196e97 Merge branch 'rw_van_221113' into 'master'
update Usage to correct img location

See merge request redox-os/redox!1287
2022-11-12 19:50:45 +00:00
Ron Williams 2abd7815b1 update Usage to correct img location 2022-11-12 11:22:48 -08:00
Jeremy Soller b68a06e4f7
Update netsurf 2022-11-12 09:03:00 -07:00
Jeremy Soller 422f17a92d
Enable duktape recipe 2022-11-12 08:34:06 -07:00
Jeremy Soller 4ed0751b8e Add missing apt-get in podman readme 2022-11-12 07:09:08 -07:00
Ron Williams f312f466f6 add config name to .img or .iso 2022-11-12 07:01:25 -07:00
Jeremy Soller 7587455f23 Update relibc 2022-11-11 17:07:01 -07:00
Jeremy Soller e9a45a1e27 Merge branch 'rw_van_221111' into 'master'
Add podman build

See merge request redox-os/redox!1285
2022-11-11 23:44:55 +00:00
Ron Williams 1772f78aa9 Add podman build 2022-11-11 15:23:08 -08:00
Jeremy Soller 438c459ca5 Add hardware compatibility 2022-11-11 14:52:57 -07:00
Jeremy Soller 7b7607a19b
Update relibc 2022-11-11 13:31:47 -07:00
Jeremy Soller 04286c49ac
Use local packages for ci images 2022-11-11 12:19:51 -07:00
Jeremy Soller 9c4f0756ec
Add images configs for i686 2022-11-11 12:11:23 -07:00
Jeremy Soller 51520118f8
Update cookbook 2022-11-11 12:01:41 -07:00
Jeremy Soller a031137605
Update cookbook 2022-11-11 11:22:21 -07:00
Jeremy Soller 05ef364256
Update cookbook 2022-11-11 10:52:02 -07:00
Jeremy Soller fedf7f9ca9
Add ci.toml for i686 2022-11-11 10:51:46 -07:00
Jeremy Soller ca7b5f7ec7
Update cookbook 2022-11-10 16:14:13 -07:00
Jeremy Soller 9283729528
Disable bash in ci 2022-11-10 15:44:32 -07:00
Jeremy Soller ab6d3c0a87
Move CI to arch-specific location 2022-11-10 15:40:32 -07:00
Jeremy Soller 45de97558c
Retain compatibility with jenkins image job 2022-11-10 12:15:21 -07:00
Jeremy Soller dfe712a84c
Retain compatibility with jenkins toolchain job 2022-11-10 12:09:26 -07:00
Jeremy Soller 9232e4282a
Build images in directory per arch, remove bochs 2022-11-10 12:06:24 -07:00
Jeremy Soller f6d58d5b68
Disable cmatrix in CI 2022-11-10 10:16:17 -07:00
Jeremy Soller 993e6fb717
Update relibc 2022-11-10 10:12:51 -07:00
Jeremy Soller 8e6517ca68 Update cookbook 2022-11-02 14:37:30 -06:00
Jeremy Soller fad1754ccf
Update cookbook 2022-10-27 12:08:48 -06:00
Jeremy Soller 60098d55ad
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2022-10-25 08:18:30 -06:00
Jeremy Soller 903a7abd9f
Update relibc 2022-10-25 08:18:24 -06:00
Jeremy Soller 2cdcf17f97 Update cookbook 2022-10-24 21:22:42 -06:00
Jeremy Soller 834541fbd3
Updated developer config 2022-10-17 12:01:03 -06:00
Jeremy Soller 0d3d7a3ac8
Update cookbook and relibc 2022-10-17 11:52:31 -06:00
Jeremy Soller 4d99c58583
Update relibc 2022-10-17 10:54:23 -06:00
Jeremy Soller e21f066628
Move filesystem size to installer config 2022-10-17 08:02:13 -06:00
Jeremy Soller f64ca1e155 Merge branch 'rw_van_221016' into 'master'
change ci-img target to build desktop, server and demo

See merge request redox-os/redox!1283
2022-10-17 01:55:15 +00:00
Ron Williams ff144e17ba change ci-img target to build desktop, server and demo 2022-10-16 17:33:44 -07:00
Jeremy Soller e833e66ac9
Move CI to its own makefile 2022-10-11 09:12:33 -06:00
Jeremy Soller 00cd04c05c Merge branch 'rw_van_221010' into 'master'
Add demo.toml, plus dependencies in bootstrap.sh

See merge request redox-os/redox!1281
2022-10-10 18:21:23 +00:00
Ron Williams 2d63f9b6f4 Add demo.toml, plus dependencies in bootstrap.sh 2022-10-10 10:15:59 -07:00
Jeremy Soller b249368cea
Update cookbook 2022-10-10 08:15:57 -06:00
Jeremy Soller ec8c1e88b7 Merge branch 'rw_van_221007' into 'master'
Unmount /tmp/redox_installer during make unmount

See merge request redox-os/redox!1280
2022-10-06 13:08:10 +00:00
Ron Williams 0664d93e0f Unmount /tmp/redox_installer during make unmount 2022-10-06 04:01:07 -07:00
Jeremy Soller 59838a21fc Merge branch 'rw_van_221005' into 'master'
unmount /tmp/redox_installer at every opportunity

See merge request redox-os/redox!1278
2022-10-05 17:02:45 +00:00
Ron Williams b47af54b9e delete /tmp/redox_installer at every opportunity 2022-10-03 08:46:01 -07:00
Jeremy Soller abe04ecd79 Update cookbook 2022-10-01 22:02:02 -06:00
Jeremy Soller a9022f67a0 Update cookbook 2022-10-01 16:58:23 -06:00
Nagy Tibor 0850d66b3e bootstrap.sh: Fix malformed unsupported platform message 2022-09-29 12:50:01 +02:00
Nagy Tibor 378545441a bootstrap.sh: Pedantic naming and capitalization fixes 2022-09-29 12:48:31 +02:00
Jeremy Soller fab7d9d3d9 Merge branch 'fix-bootstrap' into 'master'
bootstrap.sh: Install system dependencies before installing Cargo packages

See merge request redox-os/redox!1275
2022-09-28 11:41:17 +00:00
Nagy Tibor e739e3c6e7 bootstrap.sh: Install system dependencies before installing Cargo packages 2022-09-28 09:59:32 +02:00
Jeremy Soller 1be01a4b18 Update cookbook 2022-09-27 09:18:06 -06:00
Jeremy Soller e1f6192bc6 Merge branch 'omac777-master-patch-76222' into 'master'
Update bootstrap.sh Add qemu related packages for launching redox on aarch64

See merge request redox-os/redox!1273
2022-09-26 17:56:52 +00:00
David Marceau 5ec0fbee27 Update bootstrap.sh
Only install sufficient packages to launch qemu aarch64 Redox OS
2022-09-26 17:44:59 +00:00
David Marceau f92cc35c9f Update bootstrap.sh
Add qemu related packages for launching redox on aarch64 and riscv64
2022-09-26 17:28:27 +00:00
Jeremy Soller d1edbf13ac
Update installer 2022-09-21 14:43:03 -06:00
Jeremy Soller a65ad0f5e6
Update installer 2022-09-21 13:56:49 -06:00
Jeremy Soller ca0ad6baf0 Do not gzip CI images 2022-09-15 07:25:33 -06:00
Jeremy Soller 30081e7cc0
Update installer 2022-09-12 10:15:00 -06:00
Jeremy Soller 8fd33c1b5f Fix missing build directory when making fetch tag 2022-09-12 09:00:39 -06:00
Jeremy Soller 907dfce1ad Touch build/fetch.tag to prevent re-fetch 2022-09-12 08:53:38 -06:00
Jeremy Soller 8e6b2f7a85
Fix missing build directory when using REPO_BINARY 2022-09-12 07:52:50 -06:00
Jeremy Soller 939b650125
Build repository outside of installer 2022-09-12 07:51:13 -06:00
Jeremy Soller 25f4950761 Update relibc 2022-09-11 14:07:51 -06:00
Jeremy Soller e8e0bf525b Update relibc 2022-09-11 11:12:35 -06:00
Jeremy Soller 29482486bf
Add relibc to jeremy config 2022-09-10 15:43:30 -06:00
Jeremy Soller d3818dea6b
Add more packages to jeremy config 2022-09-10 15:08:49 -06:00
Jeremy Soller a57c11c51f Make redox version 0.8.0alpha 2022-09-09 08:40:44 -06:00
Jeremy Soller 8aeb3ce0c5 Add initfs to CI 2022-09-08 17:37:01 -06:00
Jeremy Soller e268c429fb
Disable pkgar in CI until recipe is fixed 2022-09-08 10:32:16 -06:00
Jeremy Soller d5d3140719
Update cookbook 2022-09-08 09:17:12 -06:00
Jeremy Soller 2087dff7e6 Support setting QEMU CPU and machine, use pc as default for i686 2022-09-07 19:37:43 -06:00
Jeremy Soller fedf98375c Support creation of isolated filesystem images 2022-09-07 19:36:52 -06:00
Jeremy Soller b81ef6ca1e Update cookbook 2022-09-07 19:09:51 -06:00
Jeremy Soller 6c3626d60a Remove some packages from desktop configs 2022-09-07 18:54:53 -06:00
Jeremy Soller 625bfa7515 Update cookbook 2022-09-07 15:30:38 -06:00
Jeremy Soller 6fbe7659b4
Update installer 2022-09-07 10:49:00 -06:00
Jeremy Soller e2ed823761
Update installer 2022-09-07 10:29:35 -06:00
Jeremy Soller f71f5379a6
Update installer 2022-09-07 09:48:27 -06:00
Jeremy Soller ba987c0963
Update installer 2022-09-07 09:45:47 -06:00
Jeremy Soller 087825fa8b
Refactor of disk image handling 2022-09-07 08:28:12 -06:00
Jeremy Soller ebf1983b6f Build ISO using HD emulation 2022-09-06 15:50:25 -06:00
Jeremy Soller e9d4101864 Update installer 2022-09-05 10:51:21 -06:00
Jeremy Soller 5270b66cea
Fixup last commit 2022-09-05 09:24:42 -06:00
Jeremy Soller 47c0b7edad
Update to use installer to produce disk images with bootloader 2022-09-05 09:24:17 -06:00
Jeremy Soller 68e3308165
Update installer and redoxfs 2022-09-05 08:59:35 -06:00
Jeremy Soller 221a695806
Update relibc 2022-09-01 15:43:50 -06:00
Jeremy Soller 2a27c76e9f
Update relibc 2022-09-01 11:00:58 -06:00
Jeremy Soller b3d2b51a69
Remove qemu nvme tracing 2022-08-31 10:56:50 -06:00
Jeremy Soller 0807904117 QEMU tracing for NVME 2022-08-30 11:09:49 -06:00
Jeremy Soller 1f60df9d0f
Update relibc 2022-08-30 08:50:40 -06:00
Jeremy Soller 714c688073
Fix last commit - only make build instead of build/filesystem 2022-08-30 08:30:33 -06:00
Jeremy Soller 9cd6e3564b
Remove development packages from desktop config 2022-08-30 08:22:21 -06:00
Jeremy Soller c43d5ce261
Ensure build/filesystem exists while building build/filesystem.bin 2022-08-30 08:14:31 -06:00
Jeremy Soller 966b8d0dea
Update bootloader 2022-08-29 17:06:52 -06:00
Jeremy Soller 5fa9c2e717 Update bootloader 2022-08-29 09:57:56 -06:00
Jeremy Soller 292c30046d Update bootloader 2022-08-29 09:32:26 -06:00
Jeremy Soller fd45421a30 Fix disk creation on i686 2022-08-28 15:40:01 -06:00
Jeremy Soller 68c91c801f Support booting both BIOS and UEFI from the same image 2022-08-28 15:24:34 -06:00
Jeremy Soller b9b54f7c71
Update bootloader 2022-08-27 18:19:11 -06:00
Jeremy Soller a7ae48e582
Add rebuild target 2022-08-26 17:47:07 -06:00
Jeremy Soller 801f921c3d
Undo accidental setting of ARCH to i686 2022-08-26 17:44:53 -06:00
Jeremy Soller 02fc5fec10 Update bootloader 2022-08-26 15:43:12 -06:00
Jeremy Soller 000cce400e Add desktop-minimal config for i686 2022-08-26 14:47:44 -06:00
Jeremy Soller cf1695fba4 Update bootloader 2022-08-26 12:34:23 -06:00
Jeremy Soller 65a230bbb1
Add a minimal i686 config for low-RAM systems 2022-08-26 12:27:09 -06:00
Jeremy Soller 231d10a83c
Always use live disk for aarch64 2022-08-26 11:30:14 -06:00
Jeremy Soller 603d97d7b0
Add aarch64 desktop config 2022-08-26 11:27:57 -06:00
Jeremy Soller 1f339004d6
Support distinct filesystem configs for each architecture 2022-08-26 11:26:05 -06:00
Jeremy Soller 08a98b8b72
Update cookbook 2022-08-26 11:18:28 -06:00
Jeremy Soller 6db193a439
Use minimum x86_64 CPU when not using KVM 2022-08-26 08:29:14 -06:00
Jeremy Soller b6b0854f4c
Support multi-core x86 2022-08-26 08:25:46 -06:00
Jeremy Soller d9394ab550 Update relibc 2022-08-25 19:04:03 -06:00
Jeremy Soller 9b88c9a6a2 Update relibc 2022-08-24 15:46:14 -06:00
Jeremy Soller 6e08e306f0
Update relibc 2022-08-24 08:51:12 -06:00
Jeremy Soller 18a938f53d
Update relibc 2022-08-24 07:49:38 -06:00
Jeremy Soller 15a79f5f84
List i686 as supported arch 2022-08-24 07:39:33 -06:00
Jeremy Soller 723d862a0c Disable efi on i686 2022-08-24 06:26:27 -06:00
Jeremy Soller d0bcec9c65 Fix swapped harddrive and livedisk 2022-08-24 06:23:57 -06:00
Jeremy Soller 6a7daa8891 Simplify qemu recipes 2022-08-24 06:22:40 -06:00
Jeremy Soller 4f7378f76c Update bootloader 2022-08-23 20:08:58 -06:00
Jeremy Soller e564823e69 Update cookbook 2022-08-23 15:43:05 -06:00
Jeremy Soller fefa5b2117 Support higher RAM sizes for x86 2022-08-23 15:42:50 -06:00
Jeremy Soller fca8e7605a Update all submodules 2022-08-23 08:20:56 -06:00
Jeremy Soller 1b115b856e Update cookbook 2022-08-23 08:19:13 -06:00
Jeremy Soller c20d39aa72 Update bootloader 2022-08-23 08:18:42 -06:00
4lDO2 3adbb18763
Update relibc. 2022-08-23 15:47:38 +02:00
Jeremy Soller 5c2fab4b8d Update bootloader 2022-08-22 12:37:21 -06:00
Jeremy Soller 4295823321 Update bootloader 2022-08-22 12:23:58 -06:00
Jeremy Soller 29de914d3f Update relibc 2022-08-22 08:41:09 -06:00
Jeremy Soller 56e5fdc868 Update bootloader 2022-08-22 08:36:26 -06:00
Jeremy Soller eeaab52bf5 Update relibc 2022-08-22 08:18:54 -06:00
Jeremy Soller c565b323d6 Enable kvm and use q35 for i686 2022-08-21 14:57:56 -06:00
Jeremy Soller 5d966da713 Update relibc 2022-08-20 22:21:31 -06:00
Jeremy Soller 695a231ce1 Update relibc 2022-08-20 19:49:31 -06:00
Jeremy Soller f4edf0de28 Update bootloader 2022-08-20 14:20:53 -06:00
Jeremy Soller f67d55fba1 Update relibc 2022-08-20 14:19:40 -06:00
Jeremy Soller 576f0d80e1 Update relibc 2022-08-19 13:16:51 -06:00
Jeremy Soller fbe4b72ba2 Update cookbook 2022-08-19 10:06:05 -06:00
Jeremy Soller 8236313599 Update bootloader 2022-08-19 09:04:15 -06:00
Jeremy Soller ccb352db6c Update relibc 2022-08-18 08:12:15 -06:00
Jeremy Soller 69b98ca72a Update relibc 2022-08-17 14:42:12 -06:00
Jeremy Soller b31bd22742 Update bootloader 2022-08-17 08:59:59 -06:00
Jeremy Soller b3f1b15fe0 Update bootloader and cookbook 2022-08-17 08:10:58 -06:00
Jeremy Soller e2c362ea17 Use bootloader package 2022-08-17 07:44:03 -06:00
Jeremy Soller a99e4904ec Build lld support for rust 2022-08-16 17:09:46 -06:00
Jeremy Soller 32c22e62ee Update relibc 2022-08-16 16:47:12 -06:00
Jeremy Soller dcf706bfd9
Copy key after running installer 2022-08-16 11:40:38 -06:00
Jeremy Soller 06aaf58659
Add bochs i686 config 2022-08-11 14:43:45 -06:00
Jeremy Soller 1998aa5005
Update bootloader 2022-08-11 11:09:54 -06:00
Jeremy Soller 4f5111cedc
Update cookbook 2022-08-11 08:09:07 -06:00
Jeremy Soller af5308787c
Update cookbook 2022-08-11 08:01:31 -06:00
Jeremy Soller c9e16a6d0e
Add initfs to configs, remove unused maximal/minimal configs 2022-08-11 08:00:15 -06:00
Jeremy Soller 28ab3884c5
Add mgba to jeremy config 2022-08-10 18:41:16 -06:00
Jeremy Soller 6731fe9a15 Merge branch 'move_initfs_to_recipe' into 'master'
Move initfs.mk to a regular cookbook recipe.

See merge request redox-os/redox!1272
2022-08-10 21:08:02 +00:00
4lDO2 ce83e7b46d
Move initfs.mk to a regular cookbook recipe. 2022-08-10 12:14:34 +02:00
Jeremy Soller 63605d1e80
Add more packages to jeremy config 2022-08-04 10:24:19 -06:00
Jeremy Soller 1a0afdca45
Remove no-reboot from qemu flags 2022-08-04 10:21:52 -06:00
Jeremy Soller 2ef580043f
Update cookbook 2022-08-04 10:21:14 -06:00
Jeremy Soller d10525a460
Update cookbook 2022-08-04 09:39:52 -06:00
Jeremy Soller dfd89cbd03
Update cookbook 2022-08-04 09:27:24 -06:00
Jeremy Soller de5f8769d3
Enable CI for more packages 2022-08-04 09:23:00 -06:00
Jeremy Soller bb32473a7d
Update cookbook 2022-08-04 09:10:33 -06:00
Jeremy Soller 625e8ee2c8
Update relibc 2022-08-04 08:56:02 -06:00
Jeremy Soller 8e0af3b847
Add escalated to packages 2022-08-02 08:56:03 -06:00
Jeremy Soller 1ca5db43ef
Add bootstrap to CI 2022-08-01 20:28:40 -06:00
Jeremy Soller 99e212904d
Update cookbook 2022-08-01 20:28:02 -06:00
Jeremy Soller 07a8dde20f
Update relibc 2022-08-01 20:28:01 -06:00
Jeremy Soller 0052cb6038
Update relibc 2022-07-29 20:05:48 -06:00
Jeremy Soller 5cb8411166
Get QEMU to run UEFI aarch64 2022-07-29 12:13:32 -06:00
Jeremy Soller c34750b50e
Fix syntax issues in qemu makefile 2022-07-29 10:15:18 -06:00
Jeremy Soller ff83cf6013
Support i686 QEMU 2022-07-29 10:11:32 -06:00
Jeremy Soller e0ce1f8bb7
Update relibc 2022-07-28 08:09:31 -06:00
Jeremy Soller a02e3c6a6e
Update cookbook 2022-07-28 07:46:31 -06:00
Jeremy Soller 765f9ba720
Update cookbook and relibc 2022-07-28 07:38:54 -06:00
Jeremy Soller bea33cedd5
Update cookbook 2022-07-27 11:13:24 -06:00
Jeremy Soller 11c2c3217f
Update cookbook 2022-07-27 10:18:28 -06:00
Jeremy Soller 50ba092040
Update cookbook and relibc 2022-07-27 10:17:30 -06:00
Jeremy Soller 2fa45ee10e Merge branch 'userspace_fexec' into 'master'
Add bootstrap and escalated to configs.

See merge request redox-os/redox!1271
2022-07-27 16:15:47 +00:00
4lDO2 0e08f9f346
Add bootstrap and escalated to configs. 2022-07-27 18:14:09 +02:00
Jeremy Soller 66af11c1cc
Update bootloader and relibc 2022-07-27 09:43:37 -06:00
Jeremy Soller f842866d40
Clean relibc when running make clean 2022-07-27 09:43:27 -06:00
Jeremy Soller 2056a668cc
Update cookbook 2022-07-26 20:16:06 -06:00
Jeremy Soller ce333f490d
Update bootloader 2022-07-26 20:15:26 -06:00
Jeremy Soller 80c192b5a8
Remove extra space from host arch 2022-07-26 13:01:08 -06:00
Jeremy Soller 3d41e23043
Ensure that rustc supports the host target correctly 2022-07-26 12:26:44 -06:00
Jeremy Soller 31e0336c7a
Update relibc 2022-07-26 12:22:59 -06:00
Jeremy Soller 3af8b1b2e3
Update cookbook 2022-07-26 12:16:37 -06:00
Jeremy Soller 85d75b7681
Use HOST_CARGO variable for compiling binaries on the host 2022-07-26 12:06:12 -06:00
Jeremy Soller 26bf3005f8
Update cookbook 2022-07-26 08:25:35 -06:00
Jeremy Soller f15f90327c
Update relibc and rust 2022-07-26 07:40:22 -06:00
Jeremy Soller d97d841c18
mk/prefix.mk: Use correct host target 2022-07-26 07:38:01 -06:00
Jeremy Soller d734246bfe
Improve jeremy config documentation 2022-07-24 12:39:10 -06:00
Jeremy Soller 4c113d701f
Update cookbook 2022-07-24 11:15:19 -06:00
Jeremy Soller 5b0822f893
Move kernel to cookbook recipe 2022-07-24 09:02:48 -06:00
Jeremy Soller c475f1a17d
Update cookbook 2022-07-23 21:28:29 -06:00
Jeremy Soller 91823821b9
Update cookbook 2022-07-23 21:07:11 -06:00
Jeremy Soller 10aedf9d44
Update cookbook 2022-07-22 21:29:51 -06:00
Jeremy Soller c047a19a2e
Update cookbook 2022-07-22 14:57:49 -06:00
Jeremy Soller 3133080330 Remove fuse from ubuntu boostrap 2022-06-19 07:54:13 -06:00
Jeremy Soller 45c3b9eafb Merge branch 'master-MR-enygmator' into 'master'
FIX minimal.toml and Bochs (bochs.x86_64)

See merge request redox-os/redox!1270
2022-05-30 11:39:02 +00:00
Tarun Aditya Thurlapati 5f1bcd5f25 FIX bochs
1. Bochs works with the bxrc now. (disabled CPU )
2. added some new options (commented)

(cherry picked from commit a71f46b86a7812300e165320180ccc1733f9bc16)
2022-05-30 16:03:31 +05:30
Tarun Aditya Thurlapati 0a1323f369 FIX minimal.toml
ADD `drivers` package to minimal.toml

(cherry picked from commit 9a8fac4871976462868af9cae99b1baabc76ac61)
2022-05-30 16:03:12 +05:30
Jeremy Soller 0a63f024e9
Fix virtualbox log paths 2022-05-02 12:49:48 -06:00
Jeremy Soller 8f210bbab9
0.7.0 2022-04-28 17:46:40 -06:00
Jeremy Soller 0f42510ae0
Update bootloader 2022-04-28 09:29:14 -06:00
Jeremy Soller e82e31846a
Update bootloader 2022-04-28 09:10:23 -06:00
Jeremy Soller 8c28bd4e3a
Update kernel 2022-04-26 12:02:05 -06:00
Jeremy Soller 3eb54cd803
Update kernel 2022-04-26 08:48:34 -06:00
Jeremy Soller 2e4b24adf6
Add redox-release file 2022-04-26 08:48:09 -06:00
Jeremy Soller 892ede150d
Update kernel 2022-04-25 15:08:40 -06:00
Jeremy Soller 6107dca9ae
Update kernel 2022-04-25 08:47:22 -06:00
Jeremy Soller 511ebc69e2
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2022-04-25 08:44:07 -06:00
Jeremy Soller bb0b859c56
Update kernel 2022-04-25 08:44:02 -06:00
Jeremy Soller 93d89c81bc
Add drivers-initfs to CI 2022-04-22 06:28:01 -06:00
Jeremy Soller 4b46d9ff48
Add terminfo to desktop config 2022-04-21 19:34:09 -06:00
Jeremy Soller bc99bac659
Update cookbook 2022-04-14 08:18:59 -06:00
Jeremy Soller 5f40a9684e
Add rustc config file with example program 2022-04-14 08:10:15 -06:00
Jeremy Soller 4c34f6c83b
Cleanup of config files, add comments for what each of them are 2022-04-14 08:09:58 -06:00
Jeremy Soller 528ef42ac0
Update cookbook 2022-04-13 13:57:59 -06:00
Jeremy Soller 23894f52dc
Use drivers-initfs for smaller initfs 2022-04-13 09:50:30 -06:00
Jeremy Soller 8f13970eef
Update redoxfs 2022-04-13 09:03:26 -06:00
Jeremy Soller afc81937ed
Update kernel 2022-04-12 20:17:39 -06:00
Jeremy Soller faaed356a3
Merge branch '4lDO2/redox-external-initfs' 2022-04-11 15:16:30 -06:00
4lDO2 10c92cef61
Update submodules 2022-04-11 23:14:54 +02:00
Jeremy Soller 78801dabdd
Update kernel 2022-04-11 14:58:09 -06:00
Jeremy Soller 0ebdbae622
Create kernel.all file that has both code and debugging symbols 2022-04-11 14:55:31 -06:00
4lDO2 34d9d49ae6
Make prefix before other dependencies. 2022-04-11 22:54:05 +02:00
4lDO2 3fd86aad4f
Add redox-initfs submodule 2022-04-08 14:13:45 +02:00
4lDO2 78551a15cd
Update bootloader and kernel. 2022-04-08 14:13:44 +02:00
4lDO2 6df94dde59
Do not rebuild kernel when initfs changes 2022-04-08 14:12:30 +02:00
Jeremy Soller 0d6020bab9
Update relibc 2022-04-04 20:24:32 -06:00
Jeremy Soller 6b100220f7
Update bootloader 2022-04-01 18:18:53 -06:00
Jeremy Soller ae17ff817f
Update cookbook 2022-04-01 17:43:30 -06:00
Jeremy Soller a634fc1c1d
Update bootloader 2022-04-01 17:42:25 -06:00
Jeremy Soller 0b50575311
Update bootloader 2022-03-30 10:35:54 -06:00
Jeremy Soller 969880fe85
Update kernel 2022-03-30 08:59:09 -06:00
Jeremy Soller 00784a39b7
Update cookbook 2022-03-30 07:37:40 -06:00
Jeremy Soller d0ac84b3e6
Update cookbook 2022-03-28 15:25:58 -06:00
Jeremy Soller 9162de4554
Update cookbook 2022-03-28 15:17:34 -06:00
Jeremy Soller 8ed3ae4baa
Update cookbook 2022-03-28 12:17:51 -06:00
4lDO2 2fd9f1fbe8
Update dependencies for toolchain update 2022-03-27 13:30:30 +02:00
4lDO2 150253bfbc
Update toolchain to 2022-03-18 2022-03-27 13:30:27 +02:00
Jeremy Soller cc7f50e139
Update installer 2022-03-23 15:07:01 -06:00
Jeremy Soller 7ac5196528
Add files needed for installation to filesystem, do not copy dynamic linking files 2022-03-23 13:54:48 -06:00
Jeremy Soller 1f6e1c9676
Remove pkg directory from initfs 2022-03-23 13:53:35 -06:00
Jeremy Soller 5ac424f5cb
Update relibc 2022-03-23 13:48:30 -06:00
Jeremy Soller 596c3c8aab
Update cookbook 2022-03-17 19:57:01 -06:00
Jeremy Soller acbc2f6318
Update cookbook and installer 2022-03-17 16:37:00 -06:00
Jeremy Soller fd29701e50
Update relibc 2022-03-17 14:04:19 -06:00
Jeremy Soller 1b5a2465e7
Update installer 2022-03-17 08:59:59 -06:00
Jeremy Soller 54c5274f2d
Make /usr links relative 2022-03-17 08:39:53 -06:00
Jeremy Soller a9cd2026ea
Update cookbook 2022-03-17 08:35:03 -06:00
Jeremy Soller 72c7674982
Update cookbook 2022-03-11 18:48:24 -07:00
Jeremy Soller e2bc8e8fa5
Update cookbook 2022-03-11 16:26:13 -07:00
Jeremy Soller b1a982c6f0
Update submodules 2022-03-11 09:18:16 -07:00
Jeremy Soller e844d3edab
Allow redoxfs mkfs flags to be set 2022-03-09 10:50:02 -07:00
Jeremy Soller fd4b3e7a52
Update kernel 2022-03-09 10:32:09 -07:00
Jeremy Soller bea8fe9134
Update bootloader and kernel 2022-03-02 19:22:40 -07:00
Jeremy Soller d21c4cd8af
Update bootloader and kernel 2022-03-01 19:45:16 -07:00
Jeremy Soller 28299d61fe
Update kernel 2022-03-01 16:25:24 -07:00
Jeremy Soller 5f6e301efb
Update bootloader and kernel 2022-03-01 12:55:21 -07:00
Jeremy Soller f1b6e4afbf
Update bootloader 2022-03-01 07:58:56 -07:00
Jeremy Soller e779848fdd
Adjust initfs removed binaries, copy bootloader to filesystem 2022-02-28 17:38:21 -07:00
Jeremy Soller ca0792a390
Update cookbook and installer 2022-02-28 12:26:37 -07:00
Jeremy Soller afed6a7190
Update bootloader and redoxfs 2022-02-27 20:59:32 -07:00
Jeremy Soller edcadf4079
Update redoxfs 2022-02-27 20:27:01 -07:00
Jeremy Soller 17516fc24a
Update bootloader and redoxfs 2022-02-27 20:12:17 -07:00
Jeremy Soller 42c5462f30
Use redoxfs 0.5.0 branch 2022-02-22 10:41:31 -07:00
Jeremy Soller 1d3202a70f
Update bootloader 2022-02-15 13:04:04 -07:00
Jeremy Soller 018b20c328
Update bootloader 2022-02-15 12:48:30 -07:00
Jeremy Soller 0270f460af
Update bootloader 2022-02-15 08:54:03 -07:00
Jeremy Soller 3f154e09e2
Update bootloader and kernel 2022-02-14 12:28:07 -07:00
Jeremy Soller 72ba48fee5
Temporarily remove usb-tablet device from qemu 2022-02-14 10:40:27 -07:00
Jeremy Soller 7bfb223b74
Re-enable xhcid and drivers, update kernel 2022-02-14 10:29:33 -07:00
Jeremy Soller 2b8585274e
Move logd to initfs, update kernel 2022-02-14 09:58:22 -07:00
Jeremy Soller b59c88bd60
Update kernel 2022-02-14 08:49:49 -07:00
Jeremy Soller 7696ec8bad
Update bootloader 2022-02-11 13:33:11 -07:00
Jeremy Soller bf136dcc15
Update bootloader 2022-02-11 13:07:17 -07:00
Jeremy Soller 4a5633db5b
Update bootloader 2022-02-10 20:35:36 -07:00
Jeremy Soller 1cf65bc62d
Update bootloader 2022-02-10 20:28:07 -07:00
Jeremy Soller 287ad14127
Update bootloader 2022-02-10 20:20:42 -07:00
Jeremy Soller 1c138a6fd6
Update bootloader 2022-02-10 16:03:18 -07:00
Jeremy Soller ed5d2783a2
Move live disk support from kernel to bootloader 2022-02-10 15:52:15 -07:00
Jeremy Soller 061cee89e1
Cleanup filesystem-live build target 2022-02-10 13:32:05 -07:00
Jeremy Soller 9c175353fe
Update bootloader 2022-02-10 12:20:36 -07:00
Jeremy Soller 748c3a4ece
Update bootloader 2022-02-10 12:12:45 -07:00
Jeremy Soller 2731354a9b
Add livedisk-efi.bin target, remove unsupported livedisk-efi.iso target 2022-02-10 12:12:38 -07:00
Jeremy Soller 8a3bed6226
Update bootloader 2022-02-09 10:33:38 -07:00
Jeremy Soller ecccc8ba22
Fix guest_errors debugging overriding cpu_reset 2022-02-09 10:33:28 -07:00
Jeremy Soller c49d2a2484
Update bootloader 2022-02-08 14:20:46 -07:00
Jeremy Soller b0958d492f
Update bootloader, remove bootloader-efi 2022-02-08 14:17:39 -07:00
Jeremy Soller c4bf3a9956
Update bootloader-efi 2022-02-08 11:17:07 -07:00
Jeremy Soller dce389b198
Update bootloader 2022-02-07 20:44:58 -07:00
Jeremy Soller 22e2031120
Update bootloader 2022-02-07 20:37:20 -07:00
Jeremy Soller 42cc61803c
Fix live disk and ISO 2022-02-07 20:20:03 -07:00
Jeremy Soller b5d8859acd
Use harddrive.bin for bochs 2022-02-07 19:46:22 -07:00
Jeremy Soller 440e5e150a
Update kernel 2022-02-07 17:52:00 -07:00
Jeremy Soller 35cd0b2ab0
WIP changes for rust bootloader 2022-02-07 17:13:28 -07:00
Jeremy Soller 7e0938d674
Update bootloader-efi and kernel 2022-01-28 10:34:21 -07:00
Jeremy Soller c1caf48ea1
Update redoxfs 2021-12-26 19:47:56 -07:00
Jeremy Soller 0c3ceabfdd
Update relibc 2021-12-15 13:25:34 -07:00
Jeremy Soller 6917895a4f
Add vim to ci 2021-12-15 13:25:29 -07:00
Jeremy Soller e11a156f75
Update cookbook 2021-12-15 11:42:25 -07:00
Jeremy Soller 732ae37ca5
Update cookbook 2021-12-15 11:30:50 -07:00
Jeremy Soller 2666af9f23
Update cookbook and relibc 2021-12-14 15:04:16 -07:00
Jeremy Soller 7ccc6b32d4
Update kernel and relibc 2021-12-01 10:09:09 -07:00
Jeremy Soller 802dc76001
Add resist testing config 2021-12-01 08:46:09 -07:00
Jeremy Soller 94d9ebca68
Update cookbook 2021-12-01 08:43:06 -07:00
Jeremy Soller be4969cb59
Update kernel 2021-12-01 08:40:33 -07:00
Jeremy Soller 386850e1c2
Update kernel and relibc 2021-11-30 21:20:35 -07:00
Jeremy Soller 8258d40b44
Update kernel 2021-11-30 18:03:42 -07:00
Jeremy Soller 525ebe3784
Update relibc 2021-11-30 10:32:38 -07:00
Jeremy Soller a9ae409335
Update kernel 2021-10-27 20:48:27 -06:00
Jeremy Soller f09ac648c8
Update kernel 2021-10-27 20:30:00 -06:00
Jeremy Soller 06e5360928
Update kernel 2021-10-20 20:06:03 -06:00
Jeremy Soller baf6a9f795
Remove unused packages from acid filesystem config 2021-09-22 21:19:21 -06:00
Jeremy Soller c501b6d386
Update kernel and relibc 2021-09-22 21:04:48 -06:00
Jeremy Soller 9a0d33762b
Update relibc 2021-09-14 20:56:49 -06:00
Jeremy Soller 6657918e17
Update relibc 2021-09-14 20:36:51 -06:00
Jeremy Soller 29bb30f0b4
Update relibc 2021-09-13 20:39:50 -06:00
Jeremy Soller d001047547
Update cookbook 2021-08-12 20:13:40 -06:00
Jeremy Soller f1601db32d
Update kernel 2021-08-12 20:13:27 -06:00
Jeremy Soller 89ea0b63c4
Update cookbook 2021-08-10 21:20:22 -06:00
Jeremy Soller 732b9f1df4
Update kernel 2021-08-10 20:46:39 -06:00
Jeremy Soller e13d479af3
Update relibc 2021-08-10 18:26:22 -06:00
Jeremy Soller d36d95f326
Update cookbook and kernel 2021-08-10 17:33:13 -06:00
Jeremy Soller 7cf142a185
Update cookbook and installer 2021-08-10 16:08:42 -06:00
Jeremy Soller b45980e7d0
Update submodules 2021-08-10 15:42:25 -06:00
Jeremy Soller b9bf7dc1f5
Add resist to ci 2021-08-05 14:03:08 -06:00
Jeremy Soller 59b9a26ec9
Update cookbook 2021-08-05 14:02:44 -06:00
Jeremy Soller 49801aa0fe
Update relibc and rust-toolchain 2021-08-03 12:39:08 -06:00
Jeremy Soller a6eca10af6
Disable sdl-player 2021-07-19 11:12:29 -06:00
Jeremy Soller c6a27629bc
Update relibc 2021-07-19 10:14:50 -06:00
Jeremy Soller 24914f1886
Add libgmp 2021-07-19 08:39:16 -06:00
Jeremy Soller 5981d3367f
Re-enable glium 2021-07-19 08:28:39 -06:00
Jeremy Soller a8bff54cd7
Disable glium recipe 2021-07-19 06:46:53 -06:00
Jeremy Soller 17bf88b390
Ensure that REDOXER_TOOLCHAIN is set for all makefile targets 2021-07-18 20:48:01 -06:00
Jeremy Soller 4935d9f800
Update relibc 2021-07-18 20:21:25 -06:00
Jeremy Soller 7b528ed593
Update rust 2021-07-16 13:08:35 -06:00
Jeremy Soller 595fb29abc
Add libexpat-dev and libgmp-dev to Ubuntu bootstrap 2021-07-16 10:57:24 -06:00
Jeremy Soller d5f3100c4d
Disable cairodemo recipe 2021-07-15 21:37:04 -06:00
Jeremy Soller 8c8d412d4f
Update cookbook 2021-07-14 13:13:19 -06:00
Jeremy Soller 46cb8b5c04
Update cookbook 2021-07-14 12:27:00 -06:00
Jeremy Soller 3bc63957a0
Update cookbook 2021-07-14 11:57:02 -06:00
Jeremy Soller 6d30c71282
Update kernel 2021-07-14 11:23:04 -06:00
Jeremy Soller db157bc963
Attempt to build HOST_TARGET in rust-install 2021-07-12 07:29:29 -06:00
Jeremy Soller f007b05cd2 Merge branch 'rust-fix-scheme-parsing' into 'master'
Update rust submodule

See merge request redox-os/redox!1265
2021-07-01 14:05:35 +00:00
4lDO2 acedddd21a
Update rust submodule. 2021-07-01 15:37:30 +02:00
Jeremy Soller c29329310c Merge branch 'fix_build_deps' into 'master'
Add missing build package

See merge request redox-os/redox!1261
2021-06-20 12:47:42 +00:00
InfRandomness 8cf7a25a9f
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox into fix_build_deps 2021-06-20 13:34:19 +02:00
Jeremy Soller b35a91576d
Workarounds for compilation issues 2021-06-18 13:54:40 -06:00
Jeremy Soller 848c3f9ec1
Fix incorrect path when copying from rust install to relibc install 2021-06-18 13:44:00 -06:00
4lDO2 690e4a7b7e Merge branch 'update-toolchain' into 'master'
Update toolchain to nightly-2021-06-15

See merge request redox-os/redox!1262
2021-06-18 15:24:16 +00:00
4lDO2 b0365d4ed3
Update Rust branch. 2021-06-18 17:22:48 +02:00
4lDO2 6a2e05a42e
Update submodules. 2021-06-18 17:19:57 +02:00
4lDO2 3e447e27ae
Update submodules adapted to the new toolchain. 2021-06-18 09:28:39 +02:00
4lDO2 97cab676c1
Update toolchain to nightly-2021-06-15. 2021-06-18 09:28:35 +02:00
InfRandomness 0dbd0ee4d6
Add missing solus packages 2021-06-14 18:00:59 +02:00
InfRandomness ae78a96ddf
Add missing fedora packages 2021-06-14 02:40:07 +02:00
InfRandomness dcd2b348c2
Add missing suse packages 2021-06-13 21:46:35 +02:00
Jeremy Soller 901108353f
Update submodules 2021-05-10 11:34:32 -06:00
Jeremy Soller ef39bf42cd
Update cookbook 2021-05-10 09:45:01 -06:00
Jeremy Soller e047a07cab
Update kernel and cookbook 2021-05-09 19:51:27 -06:00
Jeremy Soller 87467401fa
Update all submodules 2021-05-06 13:36:21 -06:00
Jeremy Soller d55ed885ad
Update kernel 2021-05-06 13:25:52 -06:00
Jeremy Soller 5efd463c73
Update kernel 2021-05-06 12:38:37 -06:00
Jeremy Soller 22a2b49a26
Add acpid userspace driver 2021-05-06 12:37:55 -06:00
Jeremy Soller c51b164549
Update cookbook 2021-05-04 12:59:47 -06:00
Jeremy Soller aad25f5f7c
Update kernel 2021-05-04 08:33:30 -06:00
Jeremy Soller a38bcdd20b
Update kernel 2021-04-13 19:36:18 -06:00
Jeremy Soller bfcff323aa
Update cookbook 2021-04-06 13:32:44 -06:00
Jeremy Soller e656b2930a
Update cookbook 2021-04-06 13:22:56 -06:00
Jeremy Soller 473d68255b
Update relibc 2021-04-06 13:05:27 -06:00
Jeremy Soller 071143e78b
Update kernel 2021-03-24 14:34:20 -06:00
Jeremy Soller 4cb1a67337
Update bootloader-efi 2021-03-17 08:30:56 -06:00
Jeremy Soller e10a7adf18
Update kernel 2021-03-16 21:56:24 -06:00
Jeremy Soller 20b15789bc
Update relibc 2021-03-16 21:47:16 -06:00
Jeremy Soller 94639dc059
Update cookbook and relibc 2021-02-28 09:53:35 -07:00
Jeremy Soller a8054dc361
Update relibc 2021-02-27 13:12:08 -07:00
Jeremy Soller b2b49fbd77
Update kernel and makefiles to enable use of GS segment 2021-02-23 09:23:37 -07:00
Jeremy Soller 3a9f308db6
Update kernel 2021-02-23 09:20:18 -07:00
Jeremy Soller ae11dea756
Update kernel 2021-02-15 12:13:34 -07:00
Jeremy Soller 95e96ef72a
Update cookbook 2021-02-14 14:17:49 -07:00
Jeremy Soller 5f1250dff1
Update relibc 2021-02-14 14:07:10 -07:00
Jeremy Soller aedc32284d
Update kernel 2021-02-14 13:45:53 -07:00
Jeremy Soller 9b75915c21
Update kernel 2021-02-13 13:06:25 -07:00
Jeremy Soller f644c0d883
Use /sbin/parted to call parted. This might need to be improved with automatic detection of the parted location later 2021-01-21 15:49:22 -07:00
Jeremy Soller 563261b11c
Update relibc 2021-01-11 09:12:11 -07:00
Jeremy Soller b527082c94
Update kernel and relibc 2021-01-11 07:01:28 -07:00
95 changed files with 4159 additions and 2642 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
/build/
/prefix/
.config
**/my_*

View File

@ -1,11 +1,12 @@
image: "ubuntu:20.04"
image: "ubuntu:22.04"
variables:
GIT_STRATEGY: "pull"
GIT_STRATEGY: "clone"
GIT_SUBMODULE_STRATEGY: "recursive"
GIT_CHECKOUT: "true"
before_script:
# Disable the wget progress bar
- echo 'show-progress = off' >> ~/.wgetrc
- |
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq &&
@ -13,31 +14,27 @@ before_script:
bison \
build-essential \
curl \
dosfstools \
flex \
fuse \
genisoimage \
fuse3 \
git \
gnupg \
libfuse-dev \
nasm \
parted \
pkg-config \
software-properties-common \
syslinux \
syslinux-utils \
texinfo \
wget &&
wget \
zstd &&
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none
img:
script:
- |
source "$HOME/.cargo/env" &&
cargo install --version 0.1.1 cargo-config &&
cargo install cargo-xbuild &&
cargo install --version 0.3.20 xargo &&
make ci-img IMG_TAG=$CI_COMMIT_REF_NAME
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 &&
make ci-img IMG_TAG=$CI_COMMIT_REF_NAME REPO_BINARY=1
artifacts:
paths:
- build/img/

23
.gitmodules vendored
View File

@ -1,11 +1,3 @@
[submodule "bootloader"]
path = bootloader
url = https://gitlab.redox-os.org/redox-os/bootloader.git
branch = master
[submodule "bootloader-efi"]
path = bootloader-efi
url = https://gitlab.redox-os.org/redox-os/bootloader-efi.git
branch = master
[submodule "cookbook"]
path = cookbook
url = https://gitlab.redox-os.org/redox-os/cookbook.git
@ -14,18 +6,11 @@
path = installer
url = https://gitlab.redox-os.org/redox-os/installer.git
branch = master
[submodule "isolinux"]
path = isolinux
url = https://gitlab.redox-os.org/redox-os/isolinux.git
branch = master
[submodule "kernel"]
path = kernel
url = https://gitlab.redox-os.org/redox-os/kernel.git
branch = master
[submodule "rust"]
path = rust
url = https://gitlab.redox-os.org/redox-os/rust.git
branch = redox-2020-07-27
branch = redox-2023-09-07
update = none
[submodule "redoxfs"]
path = redoxfs
url = https://gitlab.redox-os.org/redox-os/redoxfs.git
@ -34,7 +19,3 @@
path = relibc
url = https://gitlab.redox-os.org/redox-os/relibc.git
branch = master
[submodule "bootloader-coreboot"]
path = bootloader-coreboot
url = https://gitlab.redox-os.org/redox-os/bootloader-coreboot.git
branch = master

View File

@ -1,205 +1,141 @@
# 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!**
## Index
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!**
* [Communication](#communication)
* [Chat](#chat)
* [GitLab Issues](#issues)
* [Pull Requests](#prs)
* [Discourse](#discourse)
* [Reddit](#reddit)
* [News](#news)
* [Code Contributions](#code-contributions)
* [Low-Hanging Fruit - Easy Targets for Newbies](#easy-targets)
* [Creating a Pull Request](#creating-a-pr)
* [Best Practices/Guidelines](#best-practices)
* [General](#general)
* [Kernel](#kernel)
* [Testing Practices](#testing-practices)
* [Style Guidelines](#style-guidelines)
* [Rust](#rust-style-guidelines)
* [Git](#git-style-guidelines)
* [Other Ways to Contribute](#other)
* [Graphic Design](#graphic-design)
* [Patreon](#patreon)
## Code Of Conduct
## <a name="extern-links"> Other External Links </a>
We follow the [Rust Code Of Conduct](https://www.rust-lang.org/policies/code-of-conduct).
* [redox-os.org](https://redox-os.org)
* [rust-os-comparison](https://github.com/flosse/rust-os-comparison)
* [rust-lang.org](http://rust-lang.org)
## License
## <a name="communication"> Communication </a>
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.
### <a name="chat"> Chat </a>
Please review the LICENSE for the project you are contributing to.
The quickest and most open way to **communicate with the Redox team** is on our **chat server**. Currently, you can only get an invite by sending an email request to [info@redox-os.org](mailto:info@redox-os.org), which might take a little while, since it's not automated. Simply say you'd like to join the chat. We're working on an better way to do this, but this is the best way right now.
On [this](https://doc.redox-os.org/book/ch01-02-philosophy.html) page we explain why we use the MIT license.
### <a name="issues"> GitLab Issues </a>
## Chat
A bit more formal way of communication with fellow Redox devs, but a little less quick and convenient like the chat. Submit an issue when you run into problems compiling, testing, or just would like to discuss a certain topic, be it _features, code style, code inconsistencies, minor changes and fixes, etc._
Join us on [Matrix Chat](https://doc.redox-os.org/book/ch13-01-chat.html) to discuss issues or ask questions.
### <a name="prs"> Pull Requests </a>
## Important Places to Contribute
It's fine to just submit a small pull request without first making an issue or asking in the chat, **unless** it's a significant change that will require a lot of planning and reviewing. Also see [Creating a Pull Request](#creating-a-pr) and [Git Style Guidelines](#git-style-guidelines).
(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/))
### <a name="discourse"> Discourse </a>
You can contribute to the Redox documentation and code on these repositories:
We have a **discourse forum** at [discourse.redox-os.org](https://discourse.redox-os.org). This is the best way to discuss more general topics that aren't about specific things that need to be addressed one way or another. You can sign up like any other website.
(The order is based on difficulty, easy things first)
### <a name="reddit"> Reddit </a>
- [Website](https://gitlab.redox-os.org/redox-os/website)
- [Book](https://gitlab.redox-os.org/redox-os/book) - High-level documentation
- [Build System Configuration](https://gitlab.redox-os.org/redox-os/redox) - Our main repository
- [Cookbook](https://gitlab.redox-os.org/redox-os/cookbook) - Ports system
- [Orbital](https://gitlab.redox-os.org/redox-os/orbital) - Display server and window manager
- [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)
You can also find **Redox on Reddit** in [/r/rust/](https://www.reddit.com/r/rust) and [/r/redox/](https://www.reddit.com/r/redox). Redox news and discussion is posted on the latter, and Rust news and discussion, as well as some Redox posts, is on the former.
### Skill Levels
### <a name="news"> News </a>
If you aren't fluent in Rust:
News and updates for Redox are posted at [redox-os.org/news](https://redox-os.org/news). It's more one-way than the other things on this list, but it should provide a good summary of what's been going on with the project lately. It's usually updated weekly, but with some exceptions. A mailing list may be included eventually, but it's not set up right now.
- Write documentation
- Use and test Redox, fill issues for bugs or needed features (please verify the repository issues before)
- Web development on the website (we don't accept JavaScript code)
- Write unit tests (may require minimal knowledge of Rust)
## <a name="code-contributions"> Code Contributions </a>
If you are fluent in Rust, but not operating system Development:
### <a name="easy-targets"> Low-Hanging Fruit - Easy Targets for Newbies </a>
- Improve the Orbital display server and window manager.
- 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)
- Improve the program compatibility in relibc
- Improve the package manager
- Improve the [Ion](https://gitlab.redox-os.org/redox-os/ion) shell
#### If you're not fluent in Rust:
If you are fluent in Rust, and have experience with operating system development:
* Writing _documentation_
* **Using/testing Redox**, filing issues for bugs and needed features
* **Web development** ([Redox website, separate repo](https://gitlab.redox-os.org/redox-os/website))
* **Writing unit tests** (may require minimal knowledge of rust)
- Familiarize yourself with the repository and code
- Grep for `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME` and fix the code you find
- Update old code to remove warnings
- Improve and optimize code, especially in the kernel
- Write device drivers
#### If you are fluent in Rust, but not OS Development:
For those who want to contribute to the Redox GUI, our GUI strategy has recently changed.
* **Apps** development
* **Shell** ([Ion](https://gitlab.redox-os.org/redox-os/ion)) development
* **Package management** ([pkgutils](https://gitlab.redox-os.org/redox-os/pkgutils)) development
* Other high-level code tasks
- 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-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.
#### If you are fluent in Rust, and have experience with OS Dev:
## Tracking Issues Index
* Familiarize yourself with the repository and codebase
* Grep for `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME` and fix the code you find.
* **Improve and optimize code, especially in the kernel**
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.
### <a name="creating-a-pr"> Creating a Pull Request </a>
## Build System
**1**. _**Fork**_ the repository
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.
**2**. Clone the _original repository_ to your local PC using one of the following commands based on the protocol you are using:
* HTTPS:`git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive`
* SSH:`git clone git@gitlab.redox-os.org:redox-os/redox.git --origin upstream --recursive`
* Then rebase: `git rebase upstream master`
If you use HTTPS, you will have to log in each time when pushing to your fork. (Recommended: learn about git SSH support, it logs in automatically using SSH keys)
**3**. **Add** your fork with
* HTTPS:`git remote add origin https://gitlab.redox-os.org/your-username/redox.git`
* SSH:`git remote add origin git@gitlab.redox-os.org:your-username/redox.git`
**4**. Alternatively, if you already have a fork and copy of the repo, you can simply check to **make sure you're up-to-date**
* Pull the upstream:`git pull upstream --rebase`
* Update the submodules:`git submodule update --recursive --init`
**5**. Create a _**separate branch**_ (recommended if you're making multiple changes simultaneously) (`git checkout -b my-branch`)
## Developer FAQ
**6**. _Make changes_
You can see the most common questions and problems on [this](https://doc.redox-os.org/book/ch09-07-developer-faq.html) page.
**7**. **Commit** (`git add <item(s) you changed>; git commit`) and write your commit message
## Porting Software
**8**. Optionally run [rustfmt](https://github.com/rust-lang-nursery/rustfmt) on the _files you changed_ and commit again if it did anything (check with `git diff` first)
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.
**9**. Test your changes by **cleaning** (`make clean; git clean -Xfd`) and **building** with `make qemu` (you might have to use `make qemu kvm=no`) or `make virtualbox`.
(see [Best Practices and Guidelines](#best-practices))
## Libraries and APIs
**10**. _**Pull**_ from upstream (`git pull upstream --rebase`) (Note: Make sure to include `--rebase`, as it will apply your changes on top of the changes you just pulled, allowing for a much cleaner merge)
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.
**11**. Repeat step **9** to make sure the rebase still builds and starts
## Development Tips
**12**. Push to **your fork** (`git push origin <branch>`), `<branch>` being the branch you created earlier
You can find important tips on [this](https://doc.redox-os.org/book/ch09-02-coding-and-building.html#development-tips) section.
**13**. Create a _pull request_
## References
**14**. If your changes are _minor_, you can just describe them in a paragraph or less. If they're _major_, please fill out the provided form.
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.
**15. Submit!**
If you are skilled there's a possibility that they could improve your knowledge in some way.
## <a name="best-practices"> Best Practices and Guidelines </a>
## Best Practices and Guidelines
### <a name="general"> General </a>
You can read the best practices and guidelines on [this](https://doc.redox-os.org/book/ch11-00-best-practices.html) chapter.
* **Remember to do a `git rebase -i upstream/master` before you send your patch!**
* **Make sure your code is readable, commented, and well-documented.**
* **Don't hesitate to ask for help, comments or suggestions!**
* **Before implementing something, discuss it! Open an issue, or ask in the chat.**
## Style Guidelines
##### On the more technical side:
* Test, test, and test!
* Follow the style conventions (See [rust style guidelines](#rust-style-guidelines))
* Use `std::mem::replace` and `std::mem::swap` when you can.
* `libredox` should be 1-to-1 with the official `libstd`.
* Prefer `.into()` and `.to_owned()` over `.to_string()`.
* Prefer passing references to the data over owned data. (Don't take `String`, take `&str`. Don't take `Vec<T>` take `&[T]`).
* Use generics, traits, and other abstractions Rust provides.
* Avoid using lossy conversions (for example: don't do `my_u32 as u16 == my_u16`, prefer `my_u32 == my_u16 as u32`).
* Prefer in place (`box` keyword) when doing heap allocations.
* Prefer platform independently sized integer over pointer sized integer (`u32` over `usize`, for example).
* Follow the usual idioms of programming, such as "composition over inheritance", "let your program be divided in smaller pieces", and "resource acquisition is initialization".
* When `unsafe` is unnecessary, don't use it. **Longer safe code is better than shorter unsafe code!**
* Be sure to mark parts that need work with `TODO`, `FIXME`, `BUG`, `UNOPTIMIZED`, `REWRITEME`, `DOCME`, and `PRETTYFYME`. Always elaborate on these messages, too. Nothing is more annoying than seeing a `TODO` and not knowing how to actually fix it.
* Use the compiler hint attributes, such as `#[inline]`, `#[cold]`, etc. when it makes sense to do so.
* Check the [chat](#chat), [the website](http://redox-os.org/news), and [the Rust subreddit](https://www.reddit.com/r/rust) frequently.
### Rust
### <a name="kernel"> Kernel </a>
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.
* When trying to access a slice, **always** use the `common::GetSlice` trait and the `.get_slice()` method to get a slice without causing the kernel to panic.
The problem with slicing in regular Rust, e.g. `foo[a..b]`, is that if someone tries to access with a range that is out of bounds of an array/string/slice, it will cause a panic at runtime, as a safety measure. Same thing when accessing an element.
Always use `foo.get(n)` instead of `foo[n]` and try to cover for the possibility of `Option::None`. Doing the regular way may work fine for applications, but never in the kernel. No possible panics should ever exist in kernel space, because then the whole OS would just stop working.
### Git
### <a name="testing-practices"> Testing Practices </a>
Please follow our [Git style](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html) for pull requests.
* It's always better to test boot (`make qemu` or `make virtualbox`) every time you make a change, because it is important to see how the OS boots and works after it compiles.
Even though Rust is a safety-oriented language, something as unstable and low-level as an in-dev operating system will almost certainly have problems in many cases and may completely break on even the slightest critical change.
Also, make sure you check how the unmodified version runs on your machine before making any changes. Else, you won't have anything to compare to, and it will generally just lead to confusion. TLDR: Rebuild and test boot often.
## GitLab
* To run the **ZFS** tests:
* Create the zfs.img only once. If one has not been created, run `make filesystem/apps/zfs/zfs.img` before booting into Redox.
* Run `open zfs.img` to open the created ZFS image.
* Run `file /home/LICENSE.md` twice to ensure ARC isn't broken.
### Issues
## <a name="style-guidelines"> Style Guidelines </a>
To know how to create issues on the Redox GitLab, read [this](https://doc.redox-os.org/book/ch12-05-filing-issues.html) page.
### <a name="rust-style-guidelines"> Rust </a>
### Pull Requests
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.
Please follow [our process](https://doc.redox-os.org/book/ch12-04-creating-proper-pull-requests.html) for creating proper pull requests.
### <a name="git-style-guidelines"> Git </a>
## Other Ways to Contribute
* You should have a fork of the repository on **GitHub** and a local copy on your computer. The local copy should have two remotes; `upstream` and `origin`, `upstream` should be set to the main repository and `origin` should be your fork.
* When you start to make changes, you will want to create a separate branch, and keep the `master` branch of your fork identical to the main repository, so that you can compare your changes with the main branch and test out a more stable build if you need to.
* Usually, when syncing your local copy with the master branch, you'll want to rebase instead of merge. This is because it will create duplicate commits that don't actually do anything when merged into the master branch. You can do this in one command with `git pull upstream --rebase`. This will pull from the upstream, then roll back to the current state of the upstream, and "replay" your changes on top of it. Make sure you commit before doing this, though. Git won't be able to rebase if you don't.
* Prefer to omit the `-m` when using `git commit`. This opens your editor and should help get you in the habit of writing longer commit messages.
* Commit messages should describe their changes in present tense, e.g. "`Add stuff to file.ext`" instead of "`added stuff to file.ext`". This makes sense as sometimes when you revert back, then run through commits one-by-one, you want to see what a commit will do, instead of just what the person did when they made the commit. It's also just being consistent.
* Try to remove useless duplicate/merge commits from PRs as these don't do anything except clutter up history and make it harder to read.
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.
## <a name="other"> Other Ways to Contribute </a>
### Design
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'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.
### <a name="design"> Design </a>
- [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'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](#chat) and ask about graphic design.
If you have questions about the graphic design, ask us on the [Chat](https://doc.redox-os.org/book/ch13-01-chat.html).
### <a name="patreon"> Patreon </a>
Our **BDFL**, [jackpot51](https://gitlab.redox-os.org/jackpot51), has a [Patreon campaign](https://www.patreon.com/redox_os)! **All money received will go towards Redox OS development**. If you donate, you will be listed in the **Redox credits** as one of the people that made Redox OS possible. You'll also get other rewards the more you donate. However, please don't donate if you can't afford it.
<!--
POSSIBLE OTHER TOPICS TO INCLUDE
- Merch (maybe in the future)
- Sound Design (things like notifications, popups, etc. for orbital)
- Video Production/Motion Graphics (tutorials, introduction videos, etc.)
- Non-Rust programming, scripting, etc. (if we even have a need for this)
- Hosting/download/git mirrors (this is not needed right now, but when downloads increase it may be necessary)
-->
### 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/).

327
HARDWARE.md Normal file
View File

@ -0,0 +1,327 @@
# Hardware Compatibility
This document tracks the current hardware compatibility of Redox.
- [Status](#status)
- [General](#general)
- [Template](#template)
- [x86-64](#x86-64)
- [System76](#system76)
- [Dell](#dell)
- [HP](#hp)
- [ASUS](#asus)
- [Lenovo](#lenovo)
- [Toshiba](#toshiba)
- [Custom](#custom)
- [i686](#i686)
- [Dell](#dell-1)
- [ASUS](#asus-1)
- [Lenovo](#lenovo-1)
- [Toshiba](#toshiba-1)
- [Panasonic](#panasonic)
- [Custom](#custom-1)
- [ARM64](#arm64)
- [Custom](#custom-2)
## Status
- Broken - The system can't boot.
- Booting - The system boots with some issues.
- Recommended - The system start with all features working.
## General
This section cover things to consider.
- ACPI support is incomplete (some things are hardcoded on the kernel)
- 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
You will use this template to insert your computer.
- **Computer model**
```
Status - (Broken, Booting or Recommended)
Redox version - 0.0.0
Variant - (server-minimal, desktop-minimal, server, desktop, demo, dev or customized)
Image date - day-month-year
- Additional details goes here as items
```
## x86-64
Computers using a 64 bits Intel/AMD CPU.
### System76
- **System76 Galago Pro (galp5)**
```
Status - Recommended
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using UEFI
- Boots to desktop
```
- **System76 Lemur Pro (lemp9)**
```
Status - Recommended
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using UEFI
- Boots to desktop
```
- **System76 Oryx Pro (oryp10)**
```
Status - Booting
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using UEFI
- Boots to desktop
- No touchpad support, though it should be working
```
- **System76 Pangolin (pang12)**
```
Status - Booting
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using UEFI
- Boots to desktop
- No touchpad support, requires I2C HID
```
### Dell
- **Dell XPS 13 (9350)**
```
Status - Booting
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using both BIOS and UEFI
- Boots to desktop
- NVMe driver livelocks
```
### HP
- **HP Dev One**
```
Status - Booting
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using UEFI
- Boots to desktop
- No touchpad support, requires I2C HID
```
### ASUS
- **ASUS X554L**
```
Status - Booting
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using BIOS
- Boots to desktop
- 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 IdeaPad Y510P**
```
Status - Recommended
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using both BIOS and UEFI
- Boots to desktop
```
- **Lenovo G570**
```
Status - Broken
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using BIOS
- Correct video mode not offered, this is a firmware issue
- Bootloader panics in alloc_zeroed_page_aligned
```
### Toshiba
- **Toshiba Satellite L500**
```
Status - Booting
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using BIOS
- Correct video mode not offered, this is a firmware issue
- Boots to desktop
- No ethernet driver
```
### Custom
If you have a customized computer, put it here.
## i686
Computers with a 32 bits Intel/AMD CPU.
### Dell
- **Dell XPS 13 (9350)**
```
Status - Booting
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using BIOS
- Boots to desktop
- NVMe driver livelocks
```
### ASUS
- **ASUS Eee PC 900**
```
Status - Booting
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using BIOS
- Correct video mode not offered, this is a firmware issue
- Boots to desktop
- No ethernet driver
```
### Lenovo
- **Lenovo IdeaPad Y510P**
```
Status - Broken
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using BIOS
- Panics on phys_to_virt overflow, probably having invalid mappings for 32-bit
```
### Toshiba
- **Toshiba Satellite L500**
```
Status - Broken
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using BIOS
- Correct video mode not offered, this is a firmware issue
- Panics on phys_to_virt overflow, probably having invalid mappings for 32-bit
```
### Panasonic
- **Panasonic Toughbook CF-18**
```
Status - Broken
Redox version - 0.8.0
Variant - desktop
Image date - 11-11-2022
- Booted using BIOS
- Hangs after PIT initialization
```
### Custom
If you have a customized computer, put it here.
## ARM64
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
If you have a customized ARM board, put it here.

133
Makefile
View File

@ -4,122 +4,97 @@ include mk/config.mk
# Dependencies
include mk/depends.mk
all: build/harddrive.bin
all: $(BUILD)/harddrive.img
coreboot: build/coreboot.elf
live:
-$(FUMOUNT) $(BUILD)/filesystem/ || true
-$(FUMOUNT) /tmp/redox_installer/ || true
rm -f $(BUILD)/livedisk.iso
$(MAKE) $(BUILD)/livedisk.iso
live: build/livedisk.bin
popsicle: $(BUILD)/livedisk.iso
popsicle-gtk $(BUILD)/livedisk.iso
iso: build/livedisk.iso
image:
-$(FUMOUNT) $(BUILD)/filesystem/ || true
-$(FUMOUNT) /tmp/redox_installer/ || true
rm -f $(BUILD)/harddrive.img $(BUILD)/livedisk.iso
$(MAKE) all
clean:
rebuild:
-$(FUMOUNT) $(BUILD)/filesystem/ || true
-$(FUMOUNT) /tmp/redox_installer/ || true
rm -rf $(BUILD)
$(MAKE) all
clean: $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
cd cookbook && ./clean.sh
-rm -rf cookbook/repo
cargo clean --manifest-path cookbook/pkgutils/Cargo.toml
cargo clean --manifest-path installer/Cargo.toml
cargo clean --manifest-path kernel/Cargo.toml
cargo clean --manifest-path kernel/syscall/Cargo.toml
cargo clean --manifest-path redoxfs/Cargo.toml
-$(FUMOUNT) build/filesystem/ || true
rm -rf build
cargo clean --manifest-path relibc/Cargo.toml
endif
-$(FUMOUNT) $(BUILD)/filesystem/ || true
-$(FUMOUNT) /tmp/redox_installer/ || true
rm -rf $(BUILD)
distclean:
distclean: $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
$(MAKE) clean
cd cookbook && ./unfetch.sh
endif
pull:
git pull --recurse-submodules
git pull
git submodule sync --recursive
git submodule update --recursive --init
update:
cd cookbook && ./update.sh \
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../initfs.toml)" \
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../filesystem.toml)"
cargo update --manifest-path cookbook/pkgutils/Cargo.toml
cargo update --manifest-path installer/Cargo.toml
cargo update --manifest-path kernel/Cargo.toml
cargo update --manifest-path redoxfs/Cargo.toml
fetch: $(BUILD)/fetch.tag
fetch:
cargo build --manifest-path cookbook/Cargo.toml --release
cd cookbook && ./fetch.sh \
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../initfs.toml)" \
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../filesystem.toml)"
repo: $(BUILD)/repo.tag
# Podman build recipes and vars
include mk/podman.mk
# Disk Imaging and Cookbook tools
include mk/fstools.mk
# Cross compiler recipes
include mk/prefix.mk
# Kernel recipes
include mk/kernel.mk
# Filesystem recipes
include mk/initfs.mk
include mk/filesystem.mk
# Repository maintenance
include mk/repo.mk
# Disk images
include mk/disk.mk
# Emulation recipes
include mk/qemu.mk
include mk/bochs.mk
include mk/virtualbox.mk
# CI image target
ci-img: FORCE
$(MAKE) INSTALLER_FLAGS= \
build/harddrive.bin.gz \
build/livedisk.iso.gz \
build/harddrive-efi.bin.gz \
build/livedisk-efi.iso.gz
rm -rf build/img
mkdir -p build/img
cp "build/harddrive.bin.gz" "build/img/redox_$(IMG_TAG)_harddrive.bin.gz"
cp "build/livedisk.iso.gz" "build/img/redox_$(IMG_TAG)_livedisk.iso.gz"
cp "build/harddrive-efi.bin.gz" "build/img/redox_$(IMG_TAG)_harddrive-efi.bin.gz"
cp "build/livedisk-efi.iso.gz" "build/img/redox_$(IMG_TAG)_livedisk-efi.iso.gz"
cd build/img && sha256sum -b * > SHA256SUM
# CI
include mk/ci.mk
# CI packaging target
ci-pkg: prefix FORCE
cargo build --manifest-path cookbook/Cargo.toml --release
export PATH="$(PREFIX_PATH):$$PATH" && \
PACKAGES="$$(cargo run --manifest-path installer/Cargo.toml -- --list-packages -c ci.toml)" && \
cd cookbook && \
./fetch.sh "$${PACKAGES}" && \
./repo.sh "$${PACKAGES}"
# CI toolchain
ci-toolchain: FORCE
$(MAKE) PREFIX_BINARY=0 \
"prefix/$(TARGET)/gcc-install.tar.gz" \
"prefix/$(TARGET)/relibc-install.tar.gz" \
"prefix/$(TARGET)/rust-install.tar.gz"
rm -rf "build/toolchain/$(TARGET)"
mkdir -p "build/toolchain/$(TARGET)"
cp "prefix/$(TARGET)/gcc-install.tar.gz" "build/toolchain/$(TARGET)/gcc-install.tar.gz"
cp "prefix/$(TARGET)/relibc-install.tar.gz" "build/toolchain/$(TARGET)/relibc-install.tar.gz"
cp "prefix/$(TARGET)/rust-install.tar.gz" "build/toolchain/$(TARGET)/rust-install.tar.gz"
cd "build/toolchain/$(TARGET)" && sha256sum -b * > SHA256SUM
env: prefix FORCE
env: prefix FORCE $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
bash
endif
gdb: FORCE
gdb 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
FORCE:
# Gzip any binary
%.gz: %
gzip -k -f $<
# Create a listing for any binary
%.list: %
export PATH="$(PREFIX_PATH):$$PATH" && \
$(OBJDUMP) -C -M intel -D $< > $@
# Wireshark
wireshark: FORCE
wireshark build/network.pcap
wireshark $(BUILD)/network.pcap

205
README.md
View File

@ -2,31 +2,65 @@
<img alt="Redox" width="346" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/logos/redox/logo.png">
</p>
**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](https://www.redox-os.org) is an operating system written in Rust, a language with focus on safety, efficiency and high performance. Redox, following the microkernel design, aims to be reliable, secure, usable, correct and free. Redox is inspired by previous operating systems, such as seL4, MINIX, Plan 9, Linux 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. See [this list](#ecosystem) for overview of the ecosystem.
Redox _is not_ just a kernel, it's a **full-featured operating system**, providing components (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.
Please make sure you use the **latest nightly** of `rustc` before building (for more troubleshooting, see ["Help! Redox won't compile!"](#compile-help)).
[![Travis Build Status](https://travis-ci.org/redox-os/redox.svg?branch=master)](https://travis-ci.org/redox-os/redox)
[![Downloads](https://img.shields.io/github/downloads/redox-os/redox/total.svg)](https://gitlab.redox-os.org/redox-os/redox/tags)
[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
![Rust Version](https://img.shields.io/badge/rust-nightly%202017--10--03-lightgrey.svg)
## Contents
## Guide
* [What it looks like](#screenshots)
* [Ecosystem](#ecosystem)
* [Help! Redox won't compile](#compile-help)
* [Contributing to Redox](#contributing)
* [Cloning, Building and running](#cloning-building-running)
* [Quick Setup](#quick-setup)
* [Manual Setup](#manual-setup)
* [Setup Using Docker](#setup-using-docker)
This is the main repository of the Redox GitLab where the build system files are stored, this README is used to guide new developers.
## <a name="screenshots"> What it looks like </a>
You can find the most important pages below:
- [Book](https://doc.redox-os.org/book/)
- [Contribute](CONTRIBUTING.md)
- [Hardware Compatibility](HARDWARE.md)
- [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)
- [Build System Documentation](https://doc.redox-os.org/book/ch08-06-build-system-reference.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)
## Ecosystem
These are the most important repositories available on the Redox GitLab:
| Name (lexicographic order) | Maintainer
|--------------------------------------------------------------------------------------|---------------------------
| [acid (kernel integration tests)](https://gitlab.redox-os.org/redox-os/acid) | **@jackpot51**
| [binutils](https://gitlab.redox-os.org/redox-os/binutils) | **@jackpot51**
| [cookbook](https://gitlab.redox-os.org/redox-os/cookbook) | **@jackpot51** **@hatred_45** **@ids1024**
| [coreutils](https://gitlab.redox-os.org/redox-os/coreutils) | **@jackpot51**
| [extrautils](https://gitlab.redox-os.org/redox-os/extrautils) | **@jackpot51**
| [games](https://gitlab.redox-os.org/redox-os/games) | **@fabiao**
| [Ion (shell)](https://gitlab.redox-os.org/redox-os/ion) | **@jackpot51**
| [ipcd](https://gitlab.redox-os.org/redox-os/ipcd) | **@jackpot51**
| [kernel](https://gitlab.redox-os.org/redox-os/kernel) | **@jackpot51**
| [libextra](https://gitlab.redox-os.org/redox-os/libextra) | **@jackpot51**
| [libpager](https://gitlab.redox-os.org/redox-os/libpager) | **@jackpot51**
| [netstack](https://gitlab.redox-os.org/redox-os/netstack) | **@jackpot51**
| [netutils](https://gitlab.redox-os.org/redox-os/netutils) | **@jackpot51**
| [orbclient (Orbital client)](https://gitlab.redox-os.org/redox-os/orbclient) | **@jackpot51** **@FloVanGH**
| [orbdata](https://gitlab.redox-os.org/redox-os/orbdata) | **@jackpot51**
| [orbgame (Orbital 2D game engine)](https://gitlab.redox-os.org/redox-os/orbgame) | **@FloVanGH**
| [Orbital (windowing and compositing system)](https://gitlab.redox-os.org/redox-os/orbital) | **@jackpot51**
| [orbtk (Orbital toolkit)](https://gitlab.redox-os.org/redox-os/orbtk) | **@FloVanGH**
| [orbutils (Orbital utilities)](https://gitlab.redox-os.org/redox-os/orbutils) | **@jackpot51**
| [pkgutils (current package manager)](https://gitlab.redox-os.org/redox-os/pkgutils) | **@jackpot51**
| [ralloc](https://gitlab.redox-os.org/redox-os/ralloc) | **@jackpot51**
| [RANSID (Rust ANSI driver)](https://gitlab.redox-os.org/redox-os/ransid) | **@jackpot51**
| [redoxfs (default filesystem)](https://gitlab.redox-os.org/redox-os/redoxfs) | **@jackpot51**
| [relibc (C Library in Rust)](https://gitlab.redox-os.org/redox-os/relibc) | **@jackpot51**
| [small (stack String and other collections)](https://gitlab.redox-os.org/redox-os/small) | **@jackpot51**
| [syscall](https://gitlab.redox-os.org/redox-os/syscall) | **@jackpot51**
| [Sodium (Vim-inspired text editor)](https://gitlab.redox-os.org/redox-os/sodium) | **@jackpot51**
| [The Redox book](https://gitlab.redox-os.org/redox-os/book) | **@hatred_45**
| [userutils](https://gitlab.redox-os.org/redox-os/userutils) | **@jackpot51**
## What it looks like
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/screenshots/Senza%20titolo.jpeg">
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/screenshots/redox running.jpeg">
@ -36,137 +70,4 @@ Please make sure you use the **latest nightly** of `rustc` before building (for
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/screenshots/Boot.png">
<img alt="Redox" height="150" src="https://gitlab.redox-os.org/redox-os/assets/raw/master/screenshots/IMG_1459.PNG">
## <a name="ecosystem"> Ecosystem </a>
The ecosystem and software Redox OS provides is listed below.
| Name (lexicographic order) | Maintainer
|--------------------------------------------------------------------------------------|---------------------------
| [acid (kernel integration tests)](https://gitlab.redox-os.org/redox-os/acid) | **@jackpot51** **@NilSet**
| [binutils](https://gitlab.redox-os.org/redox-os/binutils) | **vacant**
| [cookbook](https://gitlab.redox-os.org/redox-os/cookbook) | **@jackpot51** **@ids1024** **@sajattack**
| [coreutils](https://gitlab.redox-os.org/redox-os/coreutils) | **vacant**
| [extrautils](https://gitlab.redox-os.org/redox-os/extrautils) | **vacant**
| [games](https://gitlab.redox-os.org/redox-os/games) | **@enrico** (AKA **@HenryTheCat**) **@fabiao**
| [Ion (shell)](https://gitlab.redox-os.org/redox-os/ion) | **@mmstick** **@stratact**
| [ipcd](https://gitlab.redox-os.org/redox-os/ipcd) | **@jD91mZM2**
| [kernel](https://gitlab.redox-os.org/redox-os/kernel) | **@jackpot51**
| [libextra](https://gitlab.redox-os.org/redox-os/libextra) | **vacant**
| [libpager](https://gitlab.redox-os.org/redox-os/libpager) | **vacant**
| [netstack](https://gitlab.redox-os.org/redox-os/netstack) | **@batonius** **@dlrobertson**
| [netutils](https://gitlab.redox-os.org/redox-os/netutils) | **@jackpot51**
| [orbclient (Orbital client)](https://gitlab.redox-os.org/redox-os/orbclient) | **@jackpot51** **@FloVanGH**
| [orbdata](https://gitlab.redox-os.org/redox-os/orbdata) | **@jackpot51**
| [orbgame (Orbital 2D game engine)](https://gitlab.redox-os.org/redox-os/orbgame) | **@FloVanGH**
| [Orbital (windowing and compositing system)](https://gitlab.redox-os.org/redox-os/orbital) | **@jackpot51**
| [orbtk (Orbital toolkit)](https://gitlab.redox-os.org/redox-os/orbtk) | **@FloVanGH**
| [orbutils (Orbital utilities)](https://gitlab.redox-os.org/redox-os/orbutils) | **@jackpot51**
| [pkgutils (current package manager)](https://gitlab.redox-os.org/redox-os/pkgutils) | **@jackpot51**
| [ralloc](https://gitlab.redox-os.org/redox-os/ralloc) | **@Tommoa** **@NilSet**
| [RANSID (Rust ANSI driver)](https://gitlab.redox-os.org/redox-os/ransid) | **@jackpot51**
| [redoxfs (old filesystem)](https://gitlab.redox-os.org/redox-os/redoxfs) | **@jackpot51**
| [relibc (C Library in Rust)](https://gitlab.redox-os.org/redox-os/relibc) | **@jD91mZM2** **@sajattack** **@Tommoa** **@stratact**
| [small (stack String and other collections)](https://gitlab.redox-os.org/redox-os/small) | **@Tommoa**
| [syscall](https://gitlab.redox-os.org/redox-os/syscall) | **@jackpot51**
| [Sodium (Vim-inspired text editor)](https://gitlab.redox-os.org/redox-os/sodium) | **vacant**
| [TFS ((ticki) **T**he **F**ile **S**ystem)](https://gitlab.redox-os.org/redox-os/tfs) | **@Tommoa**
| [The Redox book](https://gitlab.redox-os.org/redox-os/book) | **vacant**
| [userutils](https://gitlab.redox-os.org/redox-os/userutils) | **@jackpot51**
## <a name="compile-help"> Help! Redox won't compile! </a>
Sometimes things go wrong when compiling. Try the following before opening an issue:
1. Run `rustup update`
1. Run `make clean pull`.
1. Make sure you have **the latest version of Rust nightly!** ([rustup.rs](https://www.rustup.rs) is recommended for managing Rust versions. If you already have it, run `rustup`).
1. Update **GNU Make**, **NASM** and **QEMU/VirtualBox**.
1. Pull the upstream master branch (`git remote add upstream git@gitlab.redox-os.org:redox-os/redox.git; git pull upstream master`).
1. Update submodules (`git submodule update --recursive --init`).
and then rebuild!
## <a name="contributing"> Contributing to Redox </a>
If you're interested in this project, and you'd like to help us out, [here](CONTRIBUTING.md) is a list of ways you can do just that.
## <a name="cloning-building-running"> Cloning, Building and Running </a>
Redox is big, even compressed. Downloading the full history may take a lot of bandwidth, and can even be costly on some data plans. Clone at your own risk!
### <a name="quick-setup" /> Quick Setup </a>
```bash
$ cd path/to/your/projects/folder/
# Run bootstrap setup
$ curl -sf https://gitlab.redox-os.org/redox-os/redox/raw/master/bootstrap.sh -o bootstrap.sh && bash -e bootstrap.sh
# Change to project directory
$ cd redox
# Build Redox
$ make all
# Launch using QEMU
$ make qemu
# Launch using QEMU without using KVM (Kernel-based Virtual Machine). Try if QEMU gives an error.
$ make qemu kvm=no
```
#### QEMU with KVM
To use QEMU with KVM (Kernel-based Virtual Machine), which is faster than without KVM, you need a CPU with Intel® Virtualization Technology (Intel® VT) or AMD Virtualization™ (AMD-V™) support. Most systems have this disabled by default, so you may need to reboot, go into the BIOS, and enable it.
### <a name="manual-setup"> Manual Setup </a>
To manually clone, build and run Redox using a Unix-based host, run the following commands (with exceptions, be sure to read the comments):
```bash
$ cd path/to/your/projects/folder/
# HTTPS
$ git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive
# SSH
$ git clone git@gitlab.redox-os.org:redox-os/redox.git --origin upstream --recursive
$ cd redox/
# Install/update dependencies
$ ./bootstrap.sh -d
# Install rustup.rs
$ curl https://sh.rustup.rs -sSf | sh
$ source $HOME/.cargo/env
# Install the sysroot manager Xargo and cargo-config
$ cargo install xargo cargo-config
# For successive builds start here. If this is your first build, just continue
# Update git submodules
$ git submodule update --recursive --init
# Build Redox
$ make all
# Launch using QEMU
$ make qemu
# Launch using QEMU without using KVM (Kernel-based Virtual Machine). Try if QEMU gives an error.
$ make qemu kvm=no
# Launch using QEMU without using KVM (Kernel-based Virtual Machine) nor Graphics
make qemu kvm=no vga=no
```
### <a name="setup-using-docker"> Setup using Docker </a>
We also provide docker image. After cloning this repository, please follow README under the `docker` directory.
### Updating the codebase using the Makefile
To update the codebase run:
```
make pull; make fetch
```
`make pull` pulls and updates the submodules, and `make fetch` updates the sources for cookbook recipes.
See [Redox in Action](https://www.redox-os.org/screens/) for photos and videos.

View File

@ -1,16 +0,0 @@
ata0-master: type=disk, path="build/livedisk.bin", mode=flat
boot: disk
com1: enabled=1, mode=file, dev=build/serial.log
cpu: model=corei7_haswell_4770
#e1000: enabled=1, mac=52:54:00:12:34:56 ethmod=vnet
megs: 1024
magic_break: enabled=1
display_library: x, options="gui_debug"
log: -
debug: action=ignore
info: action=report
error: action=report
panic: action=ask
debugger_log: -

@ -1 +0,0 @@
Subproject commit 1d201c4435ebad73e0248d02c8b254783b75eca5

@ -1 +0,0 @@
Subproject commit 6c31909f75f3d707efa606e546113ee508be0748

@ -1 +0,0 @@
Subproject commit e147b413eeb9eb7d01c85cfe1b6b6eea39c47a57

File diff suppressed because it is too large Load Diff

98
build.sh Executable file
View File

@ -0,0 +1,98 @@
#!/usr/bin/env bash
###########################################################################
# #
# Build the system, with a specified processor type and filesystem config #
# #
###########################################################################
usage()
{
echo "build.sh: Invoke make for a particular architecture and configuration."
echo "Usage:"
echo "./build.sh [-X | -A | -6 | -a ARCH] [-c CONFIG] [-f FILESYSTEM_CONFIG] TARGET..."
echo " -X Equivalent to -a x86_64."
echo " -A Equivalent to -a aarch64."
echo " -6 Equivalent to -a i686."
echo " -a ARCH: Processor Architecture. Normally one of x86_64, aarch64 or"
echo " i686. ARCH is not checked, so you can add a new architecture."
echo " Defaults to the directory containing the FILESYSTEM_CONFIG file,"
echo " or x86_64 if no FILESYSTEM_CONFIG is specified."
echo " -c CONFIG: The name of the config, e.g. desktop, server or demo."
echo " Determines the name of the image, build/ARCH/CONFIG/harddrive.img"
echo " e.g. build/x86_64/desktop/harddrive.img"
echo " Determines the name of FILESYSTEM_CONFIG if none is specified."
echo " Defaults to the basename of FILESYSTEM_CONFIG, or 'desktop'"
echo " if FILESYSTEM_CONFIG is not specified."
echo " -f FILESYSTEM_CONFIG:"
echo " The config file to use. It can be in any location."
echo " However, if the file is not in a directory named x86_64, aarch64"
echo " or i686, you must specify the architecture."
echo " If -f is not specified, FILESYSTEM_CONFIG is set to"
echo " config/ARCH/CONFIG.toml"
echo " If you specify both CONFIG and FILESYSTEM_CONFIG, it is not"
echo " necessary that they match, but it is recommended."
echo " Examples: ./build.sh -c demo live - make build/x86_64/demo/livedisk.iso"
echo " ./build.sh -6 qemu - make build/i686/desktop/harddrive.img and"
echo " and run it in qemu"
echo " NOTE: If you do not change ARCH or CONFIG very often, edit mk/config.mk"
echo " and set ARCH and FILESYSTEM_CONFIG. You only need to use this"
echo " script when you want to override them."
}
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
usage
exit
fi
defaultarch="x86_64"
defaultname="desktop"
ARCH=""
CONFIG_NAME=""
FILESYSTEM_CONFIG=""
while getopts ":c:f:a:dhXA6" opt
do
case "$opt" in
a) ARCH="$OPTARG";;
c) CONFIG_NAME="$OPTARG";;
f) FILESYSTEM_CONFIG="$OPTARG";;
X) ARCH="x86_64";;
A) ARCH="aarch64";;
6) ARCH="i686";;
h) usage;;
\?) echo "Unknown option -$OPTARG, try -h for help"; exit;;
:) echo "-$OPTARG requires a value"; exit;;
esac
done
shift $((OPTIND -1))
if [ -z "$ARCH" ] && [ -n "$FILESYSTEM_CONFIG" ]; then
dirname=`dirname "$FILESYSTEM_CONFIG"`
ARCH=`basename $dirname`
case "$ARCH" in
x86_64) : ;;
aarch64) : ;;
i686) : ;;
\?) ARCH=""; echo "Unknown Architecture, please specify x86_64, aarch64 or i686";;
esac
fi
if [ -z "$config_name" ] && [ -n "$FILESYSTEM_CONFIG" ]; then
CONFIG_NAME=`basename "$FILESYSTEM_CONFIG" .toml`
fi
if [ -z "$ARCH" ]; then
ARCH="$defaultarch"
fi
if [ -z "$CONFIG_NAME" ]; then
CONFIG_NAME="$defaultname"
fi
if [ -z "$FILESYSTEM_CONFIG" ]; then
FILESYSTEM_CONFIG="config/$ARCH/$CONFIG_NAME.toml"
fi
export ARCH CONFIG_NAME FILESYSTEM_CONFIG
make $@

3
config/aarch64/acid.toml Normal file
View File

@ -0,0 +1,3 @@
# Configuration for using acid
include = ["../acid.toml"]

View File

@ -12,43 +12,50 @@ atk = {}
audiod = {}
autoconf = {}
automake = {}
#bash = {} # setrlimit
bash = {}
binutils = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
cairo = {}
cairodemo = {}
#cargo = {} # curl-config not found
#calculator = {}
cargo = {}
cleye = {}
cmatrix = {}
#cmatrix = {} # needs ncursesw now
contain = {}
coreutils = {}
cosmic-edit = {}
cosmic-icons = {}
cosmic-text = {}
cpal = {}
curl = {}
dash = {}
diffutils = {}
dosbox = {}
drivers = {}
#drivers-041 = {}
#duktape = {} # strptime
drivers-initfs = {}
duktape = {}
eduke32 = {}
escalated = {}
exampled = {}
expat = {}
extrautils = {}
#fal
#fd = {} # ctrlc-3.1.1
ffmpeg = {}
#ffmpeg6 = {} # undefined references
findutils = {}
fontconfig = {}
#freeciv = {}
freedoom = {}
#freeglut = {}
freetype = {}
freepats = {}
freetype2 = {}
#friar = {} # mio patch
fribidi = {}
#game-2048 = {} # rustc-serialize
games = {}
#gawk = {} # langinfo.h
gcc = {}
gcc13 = {}
gdbserver = {}
#gdk-pixbuf = {} # shared-mime-info
gears = {}
@ -66,7 +73,10 @@ gnu-make = {}
harfbuzz = {}
#hematite = {} # needs crate patches for redox-unix
init = {}
initfs = {}
installer = {}
installer-gui = {}
intel-one-mono = {}
ion = {}
ipcd = {}
jansson = {}
@ -75,6 +85,7 @@ keyboard-sfx = {}
lci = {}
libc-bench = {}
libffi = {}
libgmp = {}
libiconv = {}
libjpeg = {}
libogg = {}
@ -85,12 +96,13 @@ libvorbis = {}
libxml2 = {}
llvm = {}
logd = {}
#lua = {} # tmpnam
lua54 = {}
#mdp = {} # ncursesw
mesa = {}
mesa_glu = {}
#mgba = {} # no longer builds binary
mesa-glu = {}
mgba = {}
#miniserve = {} # actix
nano = {}
nasm = {}
#ncdu = {} # fails to link with ncurses
ncurses = {}
@ -99,13 +111,12 @@ netdb = {}
netstack = {}
netsurf = {}
netutils = {}
#neverball = {} # error finding SDL includes
neverball = {}
#newlib = {} # obsolete
#newlibtest = {} # obsolete
nghttp2 = {}
nulld = {}
openjazz = {}
openssl = {}
openssl1 = {}
openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
@ -115,67 +126,75 @@ orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
#orbutils-background = {} # needs recipe update
#orbutils-launcher = {} # needs recipe update
#orbutils-orblogin = {} # needs recipe update
osdemo = {}
pango = {}
#pango = {} # undefined references to std::__throw_system_error(int)
#pastel = {} # needs crate patches for redox-unix
patch = {}
#pathfinder = {} # servo-fontconfig
#pciids = {}
pcre = {}
perg = {}
periodictable = {}
#perl = {} # ctermid, tempnam, ttyname
pixelcannon = {}
pixman = {}
#pkgar = {} # uses virtual Cargo.toml, needs recipe update
pkg-config = {}
pkgutils = {}
pop-icon-theme = {}
#powerline = {} # dirs
prboom = {}
procedural-wallpapers-rs = {}
ptyd = {}
#python = {} # getaddrinfo
#qemu = {}
randd = {}
ramfs = {}
randd = {}
readline = {}
redoxerd = {}
redox-fatfs = {}
redoxfs = {}
#redox-fatfs = {}
#redox-ssh = {}
redox-games = {}
redox-ssh = {}
relibc = {}
#relibc-tests = {}
#relibc-tests = {} # madvise link error
resist = {}
#retroarch = {} # OS_TLSIndex not declared
ripgrep = {}
rodioplay = {}
rs-nes = {}
#rust = {}
rust = {}
rust64 = {}
rust-cairo = {}
rust-cairo-demo = {}
rustual-boy = {}
schismtracker = {}
scummvm = {}
sdl = {}
sdl-gfx = {}
#sdl-player = {} # wctype_t
sdl1 = {}
sdl1-image = {}
sdl1-mixer = {}
sdl1-ttf = {}
sdl2 = {}
sdl2_gears = {}
sdl2_image = {}
sdl2_mixer = {}
sdl2_ttf = {}
sdl_gfx = {}
sdl_image = {}
sdl_mixer = {}
sdl-player = {}
#sdl_ttf = {} # configure patch needs to be updated
sdl2-gears = {}
sdl2-image = {}
sdl2-mixer = {}
sdl2-ttf = {}
sed = {}
#servo = {} # some more crates to port
#shared-mime-info = {} # intltool-update out of date
shellharden = {}
shellstorm = {}
smith = {}
sodium = {}
sopwith = {}
#ssh = {}
strace = {}
#syobonaction = {} # sdl_ttf errors
syobonaction = {}
terminfo = {}
#termplay = {} # backtrace cannot find link.h
timidity = {}
@ -183,10 +202,12 @@ ttf-hack = {}
userutils = {}
uutils = {}
vice = {}
#vim = {} # stack_t not matching
vim = {}
vttest = {}
vvvvvv = {}
#webrender = {} # unwind
winit = {}
#wesnoth = {}
#winit = {} # tzset
xz = {}
zerod = {}
zlib = {}

View File

@ -0,0 +1,14 @@
# Default desktop configuration
include = ["../desktop-minimal.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

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

@ -0,0 +1,3 @@
# Configuration for using resist
include = ["../resist.toml"]

View File

@ -0,0 +1,14 @@
# Minimal configuration
include = ["../server-minimal.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

View File

@ -1,223 +1,26 @@
# This is the default configuration file
# Configuration for using acid
include = ["base.toml"]
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Filesystem size in MiB
filesystem_size = 256
# Package settings
[packages]
acid = {}
#audiod = {}
#autoconf = {}
#automake = {}
#bash = {}
#binutils = {}
#ca-certificates = {}
#cairo = {}
#cairodemo = {}
#cargo = {}
#cleye = {}
#cmatrix = {}
#contain = {}
coreutils = {}
#cpal = {}
#curl = {}
#dash = {}
#diffutils = {}
#dosbox = {}
#drivers = {}
#drivers-041 = {}
#duktape = {}
#eduke32 = {}
#exampled = {}
#expat = {}
#extrautils = {}
#fd = {}
#ffmpeg = {}
#findutils = {}
#freeciv = {}
#freedoom = {}
#freeglut = {}
#freetype = {}
#friar = {} # mio patch
#game-2048 = {}
#games = {}
#gawk = {}
#gcc = {}
#gears = {}
#generaluser-gs = {}
#gettext = {}
#gigalomania = {}
#git = {}
#glib = {}
#glium = {}
#glutin = {}
#gnu-binutils = {}
#gnu-grep = {}
#gnu-make = {}
#gstreamer = {}
#harfbuzz = {}
#hematite = {}
#init = {}
#installer = {}
#ion = {}
ipcd = {}
#jansson = {}
#keyboard-sfx = {}
#lci = {}
#libc-bench = {}
#libffi = {}
#libiconv = {}
#libjpeg = {}
#liborbital = {}
#libpng = {}
#libsodium = {}
#llvm = {}
logd = {}
#lua = {}
#mdp = {}
#mesa = {}
#mesa_glu = {}
#miniserve = {}
#nasm = {}
#ncdu = {}
#ncurses = {}
#ncursesw = {}
#netdb = {}
#netstack = {}
#netsurf = {}
#netutils = {}
#newlib = {}
#newlibtest = {}
#nulld = {}
#openjazz = {}
#openssl = {}
#openttd = {}
#openttd-opengfx = {}
#openttd-openmsx = {}
#openttd-opensfx = {}
#orbdata = {}
#orbital = {}
#orbterm = {}
#orbutils = {}
#osdemo = {}
#pastel = {}
#patch = {}
#pciids = {}
#pcre = {}
#periodictable = {}
#perl = {}
#pixelcannon = {}
#pixman = {}
#pkgutils = {}
#powerline = {}
#prboom = {}
ptyd = {}
#python = {}
#qemu = {}
#randd = {}
#readline = {} # ncurses
#redoxfs = {}
#redox-ssh = {}
#relibc = {}
#ripgrep = {}
#rodioplay = {}
#rs-nes = {}
#rust = {}
#rust64 = {}
#rust-cairo = {}
#rust-cairo-demo = {}
#rustual-boy = {}
#schismtracker = {}
#scummvm = {}
#sdl = {}
#sdl2 = {}
#sdl_gfx = {}
#sdl_image = {}
#sdl_mixer = {}
#sdl_ttf = {}
#sdl-player = {}
#sed = {}
#servo = {}
#shellstorm = {}
#smith = {}
#sodium = {}
#sopwith = {}
#ssh = {}
#syobonaction = {}
#terminfo = {}
#termplay = {}
#timidity = {}
#ttf-hack = {}
#userutils = {}
#uutils = {}
#vim = {}
#vttest = {}
#webrender = {}
#winit = {}
#xz = {}
#zerod = {}
#zlib = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
ion = {}
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
logd
ptyd
"""
[[files]]
path = "/etc/init.d/10_acid"
path = "/usr/lib/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

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

@ -1,287 +0,0 @@
# This is the default configuration file
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
#acid = {}
#audiod = {}
#autoconf = {}
#automake = {}
#bash = {}
#binutils = {}
#ca-certificates = {}
#cairo = {}
#cairodemo = {}
#cargo = {}
#cleye = {}
#cmatrix = {}
#contain = {}
#coreutils = {}
#cpal = {}
#curl = {}
#dash = {}
#diffutils = {}
#dosbox = {}
#drivers = {}
#drivers-041 = {}
#duktape = {}
#eduke32 = {}
#exampled = {}
#expat = {}
#extrautils = {}
#fd = {}
#ffmpeg = {}
#findutils = {}
#freeciv = {}
#freedoom = {}
#freeglut = {}
#freetype = {}
#friar = {} # mio patch
#game-2048 = {}
#games = {}
#gawk = {}
#gcc = {}
#gears = {}
#generaluser-gs = {}
#gettext = {}
#gigalomania = {}
#git = {}
#glib = {}
#glium = {}
#glutin = {}
#gnu-binutils = {}
#gnu-grep = {}
#gnu-make = {}
#gstreamer = {}
#harfbuzz = {}
#hematite = {}
#init = {}
#installer = {}
ion = {}
ipcd = {}
#jansson = {}
#keyboard-sfx = {}
#lci = {}
#libc-bench = {}
#libffi = {}
#libiconv = {}
#libjpeg = {}
#liborbital = {}
#libpng = {}
#libsodium = {}
#llvm = {}
#logd = {}
#lua = {}
#mdp = {}
#mesa = {}
#mesa_glu = {}
#miniserve = {}
#nasm = {}
#ncdu = {}
#ncurses = {}
#ncursesw = {}
#netdb = {}
#netstack = {}
#netsurf = {}
#netutils = {}
#newlib = {}
#newlibtest = {}
#nulld = {}
#openjazz = {}
#openssl = {}
#openttd = {}
#openttd-opengfx = {}
#openttd-openmsx = {}
#openttd-opensfx = {}
orbdata = {}
orbital = {}
orbterm = {}
#orbutils = {}
orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
#osdemo = {}
#pastel = {}
#patch = {}
#pciids = {}
#pcre = {}
#periodictable = {}
#perl = {}
#pixelcannon = {}
#pixman = {}
#pkgutils = {}
#powerline = {}
#prboom = {}
ptyd = {}
#python = {}
#qemu = {}
#randd = {}
#readline = {} # ncurses
#redoxfs = {}
#redox-ssh = {}
#relibc = {}
#ripgrep = {}
#rodioplay = {}
#rs-nes = {}
#rust = {}
#rust64 = {}
#rust-cairo = {}
#rust-cairo-demo = {}
#rustual-boy = {}
#schismtracker = {}
#scummvm = {}
#sdl = {}
#sdl2 = {}
#sdl_gfx = {}
#sdl_image = {}
#sdl_mixer = {}
#sdl_ttf = {}
#sdl-player = {}
#sed = {}
#servo = {}
#shellstorm = {}
#smith = {}
#sodium = {}
#sopwith = {}
#ssh = {}
#syobonaction = {}
#terminfo = {}
#termplay = {}
#timidity = {}
#ttf-hack = {}
#userutils = {}
uutils = {}
#vim = {}
#vttest = {}
#webrender = {}
#winit = {}
#xz = {}
#zerod = {}
#zlib = {}
# 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
#logd
ptyd
#pcid /etc/pcid.d/
"""
# [[files]]
# path = "/etc/init.d/10_net"
# data = """
# smolnetd
# dnsd
# dhcpd -b
# """
[[files]]
path = "/etc/init.d/20_orbital"
data = """
#audiod
orbital display:2/activate orblogin 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/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

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
"""

View File

@ -1,311 +1,33 @@
# This is the default configuration file
# Default desktop configuration
include = ["server.toml"]
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Filesystem size in MiB
filesystem_size = 512
# Package settings
[packages]
#acid = {}
audiod = {}
#autoconf = {}
#automake = {}
#bash = {}
#binutils = {}
ca-certificates = {}
#cairo = {}
#cairodemo = {}
#cargo = {}
#cleye = {}
#cmatrix = {}
contain = {}
coreutils = {}
#cpal = {}
#curl = {}
dash = {}
#diffutils = {}
#dosbox = {}
drivers = {}
#drivers-041 = {}
#duktape = {}
#eduke32 = {}
#exampled = {}
#expat = {}
extrautils = {}
#fd = {}
#ffmpeg = {}
findutils = {}
#freeciv = {}
#freedoom = {}
#freeglut = {}
#freetype = {}
#friar = {} # mio patch
#game-2048 = {}
#games = {}
#gawk = {}
#gcc = {}
gdbserver = {}
#gears = {}
#generaluser-gs = {}
#gettext = {}
#gigalomania = {}
#git = {}
#glib = {}
#glium = {}
#glutin = {}
#gnu-binutils = {}
#gnu-grep = {}
#gnu-make = {}
#gstreamer = {}
#harfbuzz = {}
#hematite = {}
#init = {}
installer = {}
ion = {}
ipcd = {}
#jansson = {}
#keyboard-sfx = {}
#lci = {}
#libc-bench = {}
#libffi = {}
#libiconv = {}
#libjpeg = {}
#liborbital = {}
#libpng = {}
#libsodium = {}
#llvm = {}
logd = {}
#lua = {}
#mdp = {}
#mesa = {}
#mesa_glu = {}
#miniserve = {}
#nasm = {}
#ncdu = {}
#ncurses = {}
#ncursesw = {}
netdb = {}
netstack = {}
installer-gui = {}
netsurf = {}
netutils = {}
#neverball = {}
#newlib = {}
#newlibtest = {}
#nulld = {}
#openjazz = {}
#openssl = {}
#openttd = {}
#openttd-opengfx = {}
#openttd-openmsx = {}
#openttd-opensfx = {}
#orbclient = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
#osdemo = {}
#pastel = {}
#patch = {}
#pciids = {}
#pcre = {}
#periodictable = {}
#perl = {}
#pixelcannon = {}
#pixman = {}
pkgutils = {}
#powerline = {}
#prboom = {}
ptyd = {}
#python = {}
#qemu = {}
#randd = {}
#readline = {} # ncurses
redoxfs = {}
#redox-fatfs = {}
#redox-ssh = {}
#relibc = {}
#relibc-tests = {}
#ripgrep = {}
#rodioplay = {}
#rs-nes = {}
#rust = {}
#rust64 = {}
#rust-cairo = {}
#rust-cairo-demo = {}
#rustual-boy = {}
#schismtracker = {}
#scummvm = {}
#sdl = {}
#sdl2 = {}
#sdl2_gears = {}
#sdl_gfx = {}
#sdl_image = {}
#sdl_mixer = {}
#sdl_ttf = {}
#sdl-player = {}
#sed = {}
#servo = {}
#shellstorm = {}
smith = {}
#sodium = {}
#sopwith = {}
#ssh = {}
strace = {}
#syobonaction = {}
#terminfo = {}
#termplay = {}
#timidity = {}
#ttf-hack = {}
userutils = {}
uutils = {}
#vim = {}
#vttest = {}
#webrender = {}
#winit = {}
#xz = {}
#zerod = {}
#zlib = {}
# 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
logd
ptyd
pcid /etc/pcid.d/
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
path = "/usr/lib/init.d/20_orbital"
data = """
audiod
orbital display:3/activate orblogin launcher
orbital orblogin launcher
"""
# Override console config to not switch to VT 2
[[files]]
path = "/etc/init.d/30_console"
path = "/usr/lib/init.d/30_console"
data = """
getty display: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/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

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!");
}
"""

3
config/i686/acid.toml Normal file
View File

@ -0,0 +1,3 @@
# Configuration for using acid
include = ["../acid.toml"]

47
config/i686/ci.toml Normal file
View File

@ -0,0 +1,47 @@
# This is the CI configuration file
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
audiod = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
contain = {}
coreutils = {}
dash = {}
diffutils = {}
drivers = {}
escalated = {}
extrautils = {}
findutils = {}
initfs = {}
installer = {}
installer-gui = {}
ion = {}
ipcd = {}
kernel = {}
nano = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
pkgutils = {}
ptyd = {}
redoxfs = {}
relibc = {}
resist = {}
smith = {}
userutils = {}
uutils = {}
vim = {}
#TODO: Add more packages

70
config/i686/demo.toml Normal file
View File

@ -0,0 +1,70 @@
##############################################################################
# Redox Demo Configuration #
# #
# This file defines the setup of the Redox Demo system. #
# #
# The "[packages]" section specifies what packages are installed in the #
# filesystem prior to booting the system. During build, these packages must #
# have a recipe defined in the config folder (see the Redox Book, #
# Chapter 5.1). The first group of packages is mandatory for the system to #
# function, although some items can be removed for special builds, #
# e.g. The Orbital GUI is not required for a headless server. #
# #
# Items in the "Developer Tools" and "Games" section are optional. You can #
# add your own programs here. #
# #
# The "[users]" section creates user id's and passwords. Each user will have #
# a home directory at boot. #
# #
# The "[[files]]" section contains files needed by the system. If you need #
# create a file, e.g. a config file for a program you are adding, you can do #
# it here. #
# #
##############################################################################
include = ["../desktop.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 512
# Package settings
[packages]
# Games
dosbox = {}
freedoom = {}
prboom = {}
redox-games = {}
# Demos
pixelcannon = {}
# MIDI
freepats = {}
[[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

@ -0,0 +1,14 @@
# Default desktop configuration
include = ["../desktop-minimal.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

14
config/i686/desktop.toml Normal file
View File

@ -0,0 +1,14 @@
# Default desktop configuration
include = ["../desktop.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

14
config/i686/dev.toml Normal file
View File

@ -0,0 +1,14 @@
# Configuration for development, includes cargo and rustc
include = ["../dev.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

40
config/i686/jeremy.toml Normal file
View File

@ -0,0 +1,40 @@
# Jeremy's configuration
include = ["../desktop.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 4000
# Package settings
[packages]
# apps
cosmic-text = {}
pixelcannon = {}
sodium = {}
# cli
acid = {}
cleye = {}
ripgrep = {}
# demos
cpal = {}
orbclient = {}
rodioplay = {}
winit = {}
# games
dosbox = {}
eduke32 = {}
freedoom = {}
prboom = {}
redox-games = {}
# stuff
freepats = {}
generaluser-gs = {}
jeremy = {}
keyboard-sfx = {}
ttf-hack = {}

3
config/i686/resist.toml Normal file
View File

@ -0,0 +1,3 @@
# Configuration for using resist
include = ["../resist.toml"]

View File

@ -0,0 +1,14 @@
# Minimal configuration
include = ["../server-minimal.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

14
config/i686/server.toml Normal file
View File

@ -0,0 +1,14 @@
# Default server configuration
include = ["../server.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

View File

@ -1,328 +0,0 @@
# This is a maximum configuration file
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
acid = {}
atk = {}
audiod = {}
autoconf = {}
automake = {}
#bash = {}
binutils = {}
ca-certificates = {}
cairo = {}
cairodemo = {}
#cargo = {}
cleye = {}
cmatrix = {}
contain = {}
coreutils = {}
cpal = {}
curl = {}
dash = {}
diffutils = {}
dosbox = {}
drivers = {}
#drivers-041 = {}
#duktape = {}
eduke32 = {}
exampled = {}
expat = {}
extrautils = {}
#fd = {}
ffmpeg = {}
findutils = {}
fontconfig = {}
#freeciv = {}
freedoom = {}
#freeglut = {}
freetype = {}
#friar = {} # mio patch
fribidi = {}
#game-2048 = {}
games = {}
#gawk = {}
gcc = {}
gdbserver = {}
#gdk-pixbuf = {}
gears = {}
generaluser-gs = {}
gettext = {}
gigalomania = {}
git = {}
glib = {}
glium = {}
glutin = {}
gnu-binutils = {}
gnu-grep = {}
gnu-make = {}
#gstreamer = {}
harfbuzz = {}
#hematite = {}
#init = {}
installer = {}
ion = {}
ipcd = {}
jansson = {}
keyboard-sfx = {}
lci = {}
libc-bench = {}
libffi = {}
libiconv = {}
libjpeg = {}
libogg = {}
liborbital = {}
libpng = {}
libsodium = {}
libvorbis = {}
libxml2 = {}
llvm = {}
logd = {}
#lua = {}
#mdp = {}
mesa = {}
mesa_glu = {}
#mgba = {}
#miniserve = {}
nasm = {}
#ncdu = {}
ncurses = {}
#ncursesw = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
#neverball = {}
#newlib = {}
#newlibtest = {}
nghttp2 = {}
#nulld = {}
openjazz = {}
openssl = {}
openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
openttd-opensfx = {}
orbclient = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
osdemo = {}
pango = {}
#pastel = {}
patch = {}
#pathfinder = {}
#pciids = {}
pcre = {}
periodictable = {}
#perl = {}
pixelcannon = {}
pixman = {}
pkg-config = {}
pkgutils = {}
#powerline = {}
prboom = {}
ptyd = {}
#python = {}
#qemu = {}
randd = {}
readline = {} # ncurses
redoxfs = {}
#redox-fatfs = {}
#redox-ssh = {}
relibc = {}
#relibc-tests = {}
ripgrep = {}
rodioplay = {}
rs-nes = {}
#rust = {}
rust64 = {}
rust-cairo = {}
rust-cairo-demo = {}
rustual-boy = {}
schismtracker = {}
scummvm = {}
sdl = {}
sdl2 = {}
sdl2_gears = {}
sdl2_image = {}
sdl2_mixer = {}
sdl2_ttf = {}
sdl_gfx = {}
sdl_image = {}
sdl_mixer = {}
sdl-player = {}
#sdl_ttf = {}
sed = {}
#servo = {}
#shared-mime-info = {}
shellstorm = {}
smith = {}
sodium = {}
sopwith = {}
#ssh = {}
strace = {}
#syobonaction = {}
terminfo = {}
#termplay = {}
timidity = {}
ttf-hack = {}
userutils = {}
uutils = {}
vice = {}
#vim = {}
vttest = {}
#webrender = {}
winit = {}
xz = {}
#zerod = {}
zlib = {}
# 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
logd
ptyd
pcid /etc/pcid.d/
"""
[[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 orblogin 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/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,213 +0,0 @@
# This is the default configuration file
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
#acid = {}
#audiod = {}
#autoconf = {}
#automake = {}
#bash = {}
#binutils = {}
#ca-certificates = {}
#cairo = {}
#cairodemo = {}
#cargo = {}
#cleye = {}
#cmatrix = {}
#contain = {}
#coreutils = {}
#cpal = {}
#curl = {}
#dash = {}
#diffutils = {}
#dosbox = {}
#drivers = {}
#drivers-041 = {}
#duktape = {}
#eduke32 = {}
#exampled = {}
#expat = {}
#extrautils = {}
#fd = {}
#ffmpeg = {}
#findutils = {}
#freeciv = {}
#freedoom = {}
#freeglut = {}
#freetype = {}
#friar = {} # mio patch
#game-2048 = {}
#games = {}
#gawk = {}
#gcc = {}
#gears = {}
#generaluser-gs = {}
#gettext = {}
#gigalomania = {}
#git = {}
#glib = {}
#glium = {}
#glutin = {}
#gnu-binutils = {}
#gnu-grep = {}
#gnu-make = {}
#gstreamer = {}
#harfbuzz = {}
#hematite = {}
#init = {}
#installer = {}
#ion = {}
ipcd = {}
#jansson = {}
#keyboard-sfx = {}
#lci = {}
#libc-bench = {}
#libffi = {}
#libiconv = {}
#libjpeg = {}
#liborbital = {}
#libpng = {}
#libsodium = {}
#llvm = {}
logd = {}
#lua = {}
#mdp = {}
#mesa = {}
#mesa_glu = {}
#miniserve = {}
#nasm = {}
#ncdu = {}
#ncurses = {}
#ncursesw = {}
#netdb = {}
#netstack = {}
#netsurf = {}
#netutils = {}
#newlib = {}
#newlibtest = {}
#nulld = {}
#openjazz = {}
#openssl = {}
#openttd = {}
#openttd-opengfx = {}
#openttd-openmsx = {}
#openttd-opensfx = {}
#orbdata = {}
#orbital = {}
#orbterm = {}
#orbutils = {}
#osdemo = {}
#pastel = {}
#patch = {}
#pciids = {}
#pcre = {}
#periodictable = {}
#perl = {}
#pixelcannon = {}
#pixman = {}
#pkgutils = {}
#powerline = {}
#prboom = {}
ptyd = {}
#python = {}
#qemu = {}
#randd = {}
#readline = {} # ncurses
#redoxfs = {}
#redox-ssh = {}
#relibc = {}
#ripgrep = {}
#rodioplay = {}
#rs-nes = {}
#rust = {}
#rust64 = {}
#rust-cairo = {}
#rust-cairo-demo = {}
#rustual-boy = {}
#schismtracker = {}
#scummvm = {}
#sdl = {}
#sdl2 = {}
#sdl_gfx = {}
#sdl_image = {}
#sdl_mixer = {}
#sdl_ttf = {}
#sdl-player = {}
#sed = {}
#servo = {}
#shellstorm = {}
#smith = {}
#sodium = {}
#sopwith = {}
#ssh = {}
#syobonaction = {}
#terminfo = {}
#termplay = {}
#timidity = {}
#ttf-hack = {}
#userutils = {}
#uutils = {}
#vim = {}
#vttest = {}
#webrender = {}
#winit = {}
#xz = {}
#zerod = {}
#zlib = {}
# 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
logd
ptyd
"""
[[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

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
"""

View File

@ -1,297 +1,44 @@
# This is the default configuration file
# Default server configuration
include = ["net.toml"]
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Filesystem size in MiB
filesystem_size = 512
# Package settings
[packages]
#acid = {}
#audiod = {}
#autoconf = {}
#automake = {}
#bash = {}
#binutils = {}
bash = {}
ca-certificates = {}
#cairo = {}
#cairodemo = {}
#cargo = {}
#cleye = {}
#cmatrix = {}
contain = {}
coreutils = {}
#cpal = {}
#curl = {}
dash = {}
#diffutils = {}
#dosbox = {}
drivers = {}
#drivers-041 = {}
#duktape = {}
#eduke32 = {}
#exampled = {}
#expat = {}
curl = {}
diffutils = {}
extrautils = {}
#fd = {}
#ffmpeg = {}
findutils = {}
#freeciv = {}
#freedoom = {}
#freeglut = {}
#freetype = {}
#friar = {} # mio patch
#game-2048 = {}
#games = {}
#gawk = {}
#gcc = {}
#gears = {}
#generaluser-gs = {}
#gettext = {}
#gigalomania = {}
#git = {}
#glib = {}
#glium = {}
#glutin = {}
#gnu-binutils = {}
#gnu-grep = {}
#gnu-make = {}
#gstreamer = {}
#harfbuzz = {}
#hematite = {}
#init = {}
git = {}
installer = {}
ion = {}
ipcd = {}
#jansson = {}
#keyboard-sfx = {}
#lci = {}
#libc-bench = {}
#libffi = {}
#libiconv = {}
#libjpeg = {}
#liborbital = {}
#libpng = {}
#libsodium = {}
#llvm = {}
logd = {}
#lua = {}
#mdp = {}
#mesa = {}
#mesa_glu = {}
#miniserve = {}
#nasm = {}
#ncdu = {}
#ncurses = {}
#ncursesw = {}
nano = {}
netdb = {}
netstack = {}
#netsurf = {}
netutils = {}
#newlib = {}
#newlibtest = {}
#nulld = {}
#openjazz = {}
#openssl = {}
#openttd = {}
#openttd-opengfx = {}
#openttd-openmsx = {}
#openttd-opensfx = {}
#orbdata = {}
#orbital = {}
#orbterm = {}
#orbutils = {}
#osdemo = {}
#pastel = {}
#patch = {}
#pciids = {}
#pcre = {}
#periodictable = {}
#perl = {}
#pixelcannon = {}
#pixman = {}
pkgutils = {}
#powerline = {}
#prboom = {}
ptyd = {}
#python = {}
#qemu = {}
#randd = {}
#readline = {} # ncurses
redoxfs = {}
#redox-ssh = {}
#relibc = {}
#ripgrep = {}
#rodioplay = {}
#rs-nes = {}
#rust = {}
#rust64 = {}
#rust-cairo = {}
#rust-cairo-demo = {}
#rustual-boy = {}
#schismtracker = {}
#scummvm = {}
#sdl = {}
#sdl2 = {}
#sdl_gfx = {}
#sdl_image = {}
#sdl_mixer = {}
#sdl_ttf = {}
#sdl-player = {}
#sed = {}
#servo = {}
#shellstorm = {}
relibc = {}
resist = {}
smith = {}
#sodium = {}
#sopwith = {}
#ssh = {}
#syobonaction = {}
#terminfo = {}
#termplay = {}
#timidity = {}
#ttf-hack = {}
terminfo = {}
userutils = {}
uutils = {}
#vim = {}
#vttest = {}
#webrender = {}
#winit = {}
#xz = {}
#zerod = {}
#zlib = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
vim = {}
[[files]]
path = "/etc/init.d/00_base"
path = "/usr/lib/init.d/30_console"
data = """
ipcd
logd
ptyd
pcid /etc/pcid.d/
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty display:2/activate
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/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

3
config/x86_64/acid.toml Normal file
View File

@ -0,0 +1,3 @@
# Configuration for using acid
include = ["../acid.toml"]

215
config/x86_64/ci.toml Normal file
View File

@ -0,0 +1,215 @@
# This is the CI configuration file
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
acid = {}
atk = {}
audiod = {}
autoconf = {}
automake = {}
bash = {}
binutils = {}
bootloader = {}
bootstrap = {}
ca-certificates = {}
cairo = {}
cairodemo = {}
#calculator = {}
cargo = {}
cleye = {}
#cmatrix = {} # needs ncursesw now
contain = {}
coreutils = {}
cosmic-edit = {}
cosmic-icons = {}
cosmic-text = {}
cpal = {}
curl = {}
dash = {}
diffutils = {}
dosbox = {}
drivers = {}
drivers-initfs = {}
duktape = {}
eduke32 = {}
escalated = {}
exampled = {}
expat = {}
extrautils = {}
#fal
#fd = {} # ctrlc-3.1.1
ffmpeg6 = {}
findutils = {}
fontconfig = {}
#freeciv = {}
freedoom = {}
#freeglut = {}
freepats = {}
freetype2 = {}
#friar = {} # mio patch
fribidi = {}
#game-2048 = {} # rustc-serialize
#gawk = {} # langinfo.h
gcc13 = {}
gdbserver = {}
#gdk-pixbuf = {} # shared-mime-info
gears = {}
generaluser-gs = {}
gettext = {}
gigalomania = {}
git = {}
glib = {}
glium = {}
glutin = {}
gnu-binutils = {}
gnu-grep = {}
gnu-make = {}
#gstreamer = {} # conflict with thread local errno
harfbuzz = {}
#hematite = {} # needs crate patches for redox-unix
init = {}
initfs = {}
installer = {}
installer-gui = {}
intel-one-mono = {}
ion = {}
ipcd = {}
#jansson = {} # needs config.sub update
kernel = {}
keyboard-sfx = {}
lci = {}
libc-bench = {}
libffi = {}
libgmp = {}
libiconv = {}
libjpeg = {}
libogg = {}
liborbital = {}
libpng = {}
libsodium = {}
libvorbis = {}
libxml2 = {}
llvm = {}
logd = {}
lua54 = {}
#mdp = {} # ncursesw
mednafen = {}
mesa = {}
mesa-glu = {}
mgba = {}
#miniserve = {} # actix
nano = {}
nasm = {}
#ncdu = {} # fails to link with ncurses
ncurses = {}
#ncursesw = {} # mkstemp configure hang
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
neverball = {}
#newlib = {} # obsolete
#newlibtest = {} # obsolete
nghttp2 = {}
nushell = {}
openjazz = {}
openssl1 = {}
openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
openttd-opensfx = {}
orbclient = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
#orbutils-background = {} # needs recipe update
#orbutils-launcher = {} # needs recipe update
#orbutils-orblogin = {} # needs recipe update
osdemo = {}
#pango = {} # undefined references to std::__throw_system_error(int)
#pastel = {} # needs crate patches for redox-unix
patch = {}
#pathfinder = {} # servo-fontconfig
#pciids = {}
pcre = {}
perg = {}
periodictable = {}
#perl = {} # ctermid, tempnam, ttyname
pixelcannon = {}
pixman = {}
#pkgar = {} # uses virtual Cargo.toml, needs recipe update
pkg-config = {}
pkgutils = {}
pop-icon-theme = {}
#powerline = {} # dirs
prboom = {}
procedural-wallpapers-rs = {}
ptyd = {}
#python = {} # getaddrinfo
#qemu = {}
ramfs = {}
randd = {}
readline = {}
redoxerd = {}
redox-fatfs = {}
redoxfs = {}
redox-games = {}
redox-ssh = {}
relibc = {}
#relibc-tests = {} # madvise link error
resist = {}
#retroarch = {} # OS_TLSIndex not declared
ripgrep = {}
rodioplay = {}
rs-nes = {}
rust = {}
rust64 = {}
rust-cairo = {}
rust-cairo-demo = {}
rustual-boy = {}
schismtracker = {}
scummvm = {}
sdl-gfx = {}
#sdl-player = {} # wctype_t
sdl1 = {}
sdl1-image = {}
sdl1-mixer = {}
sdl1-ttf = {}
sdl2 = {}
sdl2-gears = {}
sdl2-image = {}
sdl2-mixer = {}
sdl2-ttf = {}
sed = {}
#servo = {} # some more crates to port
shared-mime-info = {}
shellharden = {}
shellstorm = {}
smith = {}
sodium = {}
sopwith = {}
#ssh = {}
strace = {}
syobonaction = {}
terminfo = {}
#termplay = {} # backtrace cannot find link.h
timidity = {}
ttf-hack = {}
userutils = {}
uutils = {}
#vice = {} # linker errors
vim = {}
vttest = {}
vvvvvv = {}
#webrender = {} # unwind
#wesnoth = {}
#winit = {} # tzset
xz = {}
zerod = {}
zlib = {}

97
config/x86_64/demo.toml Normal file
View File

@ -0,0 +1,97 @@
##############################################################################
# Redox Demo Configuration #
# #
# This file defines the setup of the Redox Demo system. #
# #
# The "[packages]" section specifies what packages are installed in the #
# filesystem prior to booting the system. During build, these packages must #
# have a recipe defined in the config folder (see the Redox Book, #
# Chapter 5.1). The first group of packages is mandatory for the system to #
# function, although some items can be removed for special builds, #
# e.g. The Orbital GUI is not required for a headless server. #
# #
# Items in the "Developer Tools" and "Games" section are optional. You can #
# add your own programs here. #
# #
# The "[users]" section creates user id's and passwords. Each user will have #
# a home directory at boot. #
# #
# The "[[files]]" section contains files needed by the system. If you need #
# create a file, e.g. a config file for a program you are adding, you can do #
# it here. #
# #
##############################################################################
include = ["../desktop.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 1536
# Package settings
[packages]
# GUI Apps
cosmic-edit = {}
cosmic-files = {}
periodictable = {}
# GUI Data
cosmic-icons = {}
intel-one-mono = {}
pop-icon-theme = {}
shared-mime-info = {}
# Shell Apps
curl = {}
git = {}
gnu-grep = {}
ripgrep = {}
sodium = {}
vim = {}
# Games
dosbox = {}
freedoom = {}
neverball = {}
prboom = {}
redox-games = {}
sopwith = {}
syobonaction = {}
# Demos
acid = {}
nushell = {}
orbclient = {}
pixelcannon = {}
rodioplay = {}
gears = {}
# MIDI
freepats = {}
[[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

@ -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

@ -0,0 +1,14 @@
# Default desktop configuration
include = ["../desktop-minimal.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

View File

@ -0,0 +1,14 @@
# Default desktop configuration
include = ["../desktop.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

14
config/x86_64/dev.toml Normal file
View File

@ -0,0 +1,14 @@
# Configuration for development, includes cargo and rustc
include = ["../dev.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

115
config/x86_64/jeremy.toml Normal file
View File

@ -0,0 +1,115 @@
# Jeremy's configuration
include = ["../desktop.toml"]
# General settings
[general]
# Filesystem size in MiB
filesystem_size = 8192
# Package settings
[packages]
# apps
boxedwine = {}
cosmic-edit = {}
cosmic-files = {}
cosmic-term = {}
cosmic-text = {}
periodictable = {}
pixelcannon = {}
schismtracker = {}
sodium = {}
# cli
acid = {}
cleye = {}
ffmpeg6 = {}
gnu-grep = {}
lua54 = {}
nano = {}
nushell = {}
perg = {}
relibc-tests = {}
ripgrep = {}
sed = {}
shellharden = {}
xz = {}
# demos
cairodemo = {}
#cmatrix = {} # addwstr
cpal = {}
gears = {}
glium = {} # does not show anything
glutin = {}
hematite = {}
iced = {}
libcosmic = {}
orbclient = {}
osdemo = {} # does not show anything
pathfinder = {}
procedural-wallpapers-rs = {}
rodioplay = {}
rust-cairo = {}
rust-cairo-demo = {}
sdl2-gears = {}
vttest = {}
webrender = {}
winit = {}
# dev
autoconf = {}
automake = {}
#cargo = {} # openssl issues
#gcc13 = {} # libiberty errors
gnu-binutils = {}
gnu-make = {}
nasm = {}
patch = {}
pkg-config = {}
#rust = {} # takes too long to compile
rustpython = {}
# games
devilutionx = {}
dosbox = {}
eduke32 = {}
flycast = {}
freedoom = {}
gigalomania = {}
mednafen = {}
mgba = {}
neverball = {}
openjazz = {}
openjk = {}
openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
openttd-opensfx = {}
prboom = {}
redox-games = {}
#retroarch = {} # need to package cores
rs-nes = {} # need game for testing
rust64 = {} # need roms
rustual-boy = {} # need game for testing
scummvm = {} # need game for testing
sm64ex = {}
sopwith = {}
spacecadetpinball = {}
syobonaction = {}
#vice = {} # broken on new toolchain
vvvvvv = {}
# stuff
cosmic-icons = {}
freepats = {}
generaluser-gs = {}
intel-one-mono = {}
jeremy = {}
keyboard-sfx = {}
libc-bench = {}
noto-color-emoji = {}
pop-icon-theme = {}
shared-mime-info = {}
timidity = {}
ttf-hack = {}

View File

@ -0,0 +1,3 @@
# Configuration for using resist
include = ["../resist.toml"]

View File

@ -0,0 +1,14 @@
# Minimal configuration
include = ["../server-minimal.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

14
config/x86_64/server.toml Normal file
View File

@ -0,0 +1,14 @@
# Default server configuration
include = ["../server.toml"]
# Override the default settings here
# General settings
[general]
# Filesystem size in MiB
# filesystem_size = 1024
# Package settings
[packages]
# example = {}

@ -1 +1 @@
Subproject commit 84535c9062c8f977e0d7c76ade8a3c751982b4d6
Subproject commit d0378b5c485ef7943e744ebeda4ecc453c7cd7b7

View File

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

View File

@ -1 +0,0 @@
config/desktop.toml

View File

@ -1,36 +0,0 @@
# This is the default configuration file
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
drivers = {}
init = {}
nulld = {}
#pciids = {}
ramfs = {}
randd = {}
redoxfs = {}
zerod = {}
[[files]]
path="/etc/init.rc"
data="""
export PATH /bin
export TMPDIR /tmp
nulld
zerod
randd
vesad T T G
stdio display:1
ps2d us
ramfs logging
pcid /etc/pcid/initfs.toml
redoxfs --uuid $REDOXFS_UUID file $REDOXFS_BLOCK
cd file:
export PATH file:/bin
run.d /etc/init.d
"""

View File

@ -1,36 +0,0 @@
# This is the default configuration file
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
drivers = {}
init = {}
nulld = {}
#pciids = {}
ramfs = {}
randd = {}
redoxfs = {}
zerod = {}
[[files]]
path="/etc/init.rc"
data="""
export PATH /bin
export TMPDIR /tmp
nulld
zerod
randd
vesad T T G
stdio display:1
ps2d us
ramfs logging
pcid /etc/pcid/initfs.toml
redoxfs disk/live: file
cd file:
export PATH file:/bin
run.d /etc/init.d
"""

View File

@ -1,36 +0,0 @@
# This is the default configuration file
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
drivers = {}
init = {}
nulld = {}
#pciids = {}
ramfs = {}
randd = {}
redoxfs = {}
zerod = {}
[[files]]
path="/etc/init.rc"
data="""
export PATH /bin
export TMPDIR /tmp
nulld
zerod
randd
vesad T T G
stdio display:1
ps2d us
ramfs logging
pcid /etc/pcid/initfs.toml
redoxfs disk/live: file
cd file:
export PATH file:/bin
run.d /etc/init.d
"""

@ -1 +1 @@
Subproject commit 150d65c31ba05c829ba239a3febe1e44b6e512e8
Subproject commit 1c30f4a3c1f55974aed694b478ff77c0552a1576

@ -1 +0,0 @@
Subproject commit 3cf79d335400af8fc3a87a13f0ae12777a766b3b

1
kernel

@ -1 +0,0 @@
Subproject commit 903390283066a988b74e86e3630106b12b4df806

View File

@ -1,2 +0,0 @@
bochs: build/livedisk.bin
bochs -f bochs.$(ARCH)

42
mk/ci.mk Normal file
View File

@ -0,0 +1,42 @@
IMG_TAG?=$(shell git describe --tags)
IMG_SEPARATOR?=_
IMG_DIR?=build/img/$(ARCH)
# CI image target - build desktop, server and demo images
# To leave out the build tag, set both IMG_TAG and IMG_SEPARATOR to null
ci-img: FORCE
rm -rf $(IMG_DIR)
mkdir -p $(IMG_DIR)
$(MAKE) demo desktop server
cd $(IMG_DIR) && zstd --rm *
cd $(IMG_DIR) && sha256sum -b * > SHA256SUM
# The name of the target must match the name of the filesystem config file
desktop server demo: FORCE
rm -f "build/$(ARCH)/$@/harddrive.img" "build/$(ARCH)/$@/livedisk.iso"
$(MAKE) CONFIG_NAME=$@ build/$(ARCH)/$@/harddrive.img build/$(ARCH)/$@/livedisk.iso
cp "build/$(ARCH)/$@/harddrive.img" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_harddrive.img"
cp "build/$(ARCH)/$@/livedisk.iso" "$(IMG_DIR)/redox_$(@)$(IMG_SEPARATOR)$(IMG_TAG)_livedisk.iso"
# CI packaging target
ci-pkg: prefix FORCE
$(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
export PATH="$(PREFIX_PATH):$$PATH" && \
PACKAGES="$$($(INSTALLER) --list-packages -c config/$(ARCH)/ci.toml)" && \
cd cookbook && \
./fetch.sh "$${PACKAGES}" && \
./repo.sh $(REPO_NONSTOP) "$${PACKAGES}"
# CI toolchain
ci-toolchain: FORCE
$(MAKE) PREFIX_BINARY=0 \
"prefix/$(TARGET)/gcc-install.tar.gz" \
"prefix/$(TARGET)/relibc-install.tar.gz" \
"prefix/$(TARGET)/rust-install.tar.gz"
rm -rf "build/toolchain/$(TARGET)"
mkdir -p "build/toolchain/$(TARGET)"
cp "prefix/$(TARGET)/gcc-install.tar.gz" "build/toolchain/$(TARGET)/gcc-install.tar.gz"
cp "prefix/$(TARGET)/relibc-install.tar.gz" "build/toolchain/$(TARGET)/relibc-install.tar.gz"
cp "prefix/$(TARGET)/rust-install.tar.gz" "build/toolchain/$(TARGET)/rust-install.tar.gz"
cd "build/toolchain/$(TARGET)" && sha256sum -b * > SHA256SUM

View File

@ -1,59 +1,89 @@
-include .config
HOST_ARCH?=$(shell uname -m)
# Configuration
## Architecture to build Redox for (aarch64 or x86_64)
ARCH?=x86_64
## Flags to pass to the installer (empty to download binary packages)
INSTALLER_FLAGS?=--cookbook=cookbook
## Enabled to use binary prefix (much faster)
## Architecture to build Redox for (aarch64, i686, or x86_64). Defaults to a host one
ARCH?=$(HOST_ARCH)
## Sub-device type for aarch64 if needed
BOARD?=
## Enable to use binary prefix (much faster)
PREFIX_BINARY?=1
## Filesystem size in MB (256 is the default)
FILESYSTEM_SIZE?=256
## Enable to use binary packages (much faster)
REPO_BINARY?=0
## Name of the configuration to include in the image name e.g. desktop or server
CONFIG_NAME?=desktop
## Ignore errors when building the repo, attempt to build every package
## REPO_NONSTOP?=--nonstop
REPO_NONSTOP?=
## Select filesystem config
ifeq ($(BOARD),)
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?=$(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
REDOXFS_MKFS_FLAGS?=
## Set to 1 to enable Podman build, any other value will disable it
PODMAN_BUILD?=0
## The containerfile to use for the Podman base image
CONTAINERFILE?=podman/redox-base-containerfile
# Per host variables
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)
ifeq ($(UNAME),Darwin)
FUMOUNT=sudo umount
FUMOUNT=umount
export NPROC=sysctl -n hw.ncpu
export REDOX_MAKE=make
PREFIX_BINARY=0
VB_AUDIO=coreaudio
VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
else ifeq ($(UNAME),FreeBSD)
FUMOUNT=sudo umount
export NPROC=sysctl -n hw.ncpu
export REDOX_MAKE=gmake
PREFIX_BINARY=0
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
else
FUMOUNT=fusermount -u
export NPROC=nproc
export REDOX_MAKE=make
# Detect which version of the fusermount binary is available.
ifneq (, $(shell which fusermount3))
FUMOUNT=fusermount3 -u
else
FUMOUNT=fusermount -u
endif
VB_AUDIO=pulse
VBM=VBoxManage
endif
ifneq ($(UNAME),Linux)
PREFIX_BINARY=0
endif
ifneq ($(HOST_ARCH),x86_64)
PREFIX_BINARY=0
endif
# Automatic variables
ROOT=$(CURDIR)
export RUST_COMPILER_RT_ROOT=$(ROOT)/rust/src/llvm-project/compiler-rt
export RUST_TARGET_PATH=$(ROOT)/kernel/targets
export XARGO_RUST_SRC=$(ROOT)/rust/src
## Kernel variables
KTARGET=$(ARCH)-unknown-none
KBUILD=build/kernel
## Userspace variables
export TARGET=$(ARCH)-unknown-redox
BUILD=build/userspace
INSTALLER=\
export REDOXER_TOOLCHAIN="$(ROOT)/$(PREFIX_INSTALL)" && \
export PATH="$(PREFIX_PATH):$$PATH" && \
installer/target/release/redox_installer $(INSTALLER_FLAGS)
BUILD=build/$(ARCH)/$(CONFIG_NAME)
INSTALLER=installer/target/release/redox_installer
ifeq ($(REPO_BINARY),0)
INSTALLER+=--cookbook=cookbook
REPO_TAG=$(BUILD)/repo.tag
else
INSTALLER+=--cookbook=cookbook --repo-binary
REPO_TAG=$(BUILD)/repo.tag
endif
## Bootloader variables
EFI_TARGET=$(ARCH)-unknown-uefi
FSTOOLS_TAG=build/fstools.tag
export BOARD
## Cross compiler variables
AR=$(TARGET)-gcc-ar
@ -72,3 +102,11 @@ STRIP=$(TARGET)-strip
export AR_$(subst -,_,$(TARGET))=$(TARGET)-ar
export CC_$(subst -,_,$(TARGET))=$(TARGET)-gcc
export CXX_$(subst -,_,$(TARGET))=$(TARGET)-g++
## If Podman is being used, a container is required
ifeq ($(PODMAN_BUILD),1)
CONTAINER_TAG=build/container.tag
else
CONTAINER_TAG=
endif

View File

@ -1,19 +1,27 @@
# Dependencies
# Don't check for Rust/Cargo if you will be using Podman
ifneq ($(PODMAN_BUILD),1)
ifeq ($(shell which rustup),)
$(error rustup not found, install from "https://rustup.rs/")
endif
ifeq ($(shell which cbindgen),)
$(error cbindgen not found, install from crates.io or from your package manager)
endif
ifeq ($(shell which nasm),)
$(error nasm not found, install from your package manager)
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
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")
endif
XARGO_VERSION=0.3.20
ifeq ($(shell env -u RUSTUP_TOOLCHAIN cargo install --list | grep '^xargo v$(XARGO_VERSION):$$'),)
$(error xargo $(XARGO_VERSION) not found, run "cargo install --force --version $(XARGO_VERSION) xargo")
endif

View File

@ -1,78 +1,50 @@
build/bootloader: bootloader/$(ARCH)/**
mkdir -p build
nasm -f bin -o $@ -D ARCH_$(ARCH) -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm
build/harddrive.bin: build/filesystem.bin bootloader/$(ARCH)/**
nasm -f bin -o build/bootsector.bin -D ARCH_$(ARCH) -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm
dd if=/dev/zero of=$@.partial bs=1M count=$$(expr $$(du -m $< | cut -f1) + 2)
parted -s -a minimal $@.partial mklabel msdos
parted -s -a minimal $@.partial mkpart primary 2048s $$(expr $$(du -m $< | cut -f1) \* 2048 + 2048)s
dd if=build/bootsector.bin of=$@.partial bs=1 count=446 conv=notrunc
dd if=build/bootsector.bin of=$@.partial bs=512 skip=1 seek=1 conv=notrunc
dd if=$< of=$@.partial bs=1M seek=1 conv=notrunc
$(BUILD)/harddrive.img: $(FSTOOLS_TAG) $(REPO_TAG)
mkdir -p $(BUILD)
rm -rf $@ $@.partial
-$(FUMOUNT) /tmp/redox_installer || true
truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) $@.partial
mv $@.partial $@
build/livedisk.bin: build/kernel_live bootloader/$(ARCH)/**
nasm -f bin -o $@ -D ARCH_$(ARCH) -D KERNEL=$< -ibootloader/$(ARCH)/ bootloader/$(ARCH)/disk.asm
build/livedisk.iso: build/livedisk.bin.gz
rm -rf build/iso/
mkdir -p build/iso/
cp -RL isolinux build/iso/
cp $< build/iso/livedisk.gz
genisoimage -o $@ -b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
build/iso/
isohybrid $@
bootloader-coreboot/build/bootloader: build/kernel_coreboot
env --unset=RUST_TARGET_PATH --unset=RUSTUP_TOOLCHAIN --unset=XARGO_RUST_SRC \
$(MAKE) -C bootloader-coreboot clean build/bootloader KERNEL="$(ROOT)/$<"
build/coreboot.elf: bootloader-coreboot/build/bootloader
mkdir -p build
cp -v $< $@
bootloader-efi/build/$(EFI_TARGET)/boot.efi: FORCE
env --unset=RUST_TARGET_PATH --unset=RUSTUP_TOOLCHAIN --unset=XARGO_RUST_SRC \
$(MAKE) -C bootloader-efi build/$(EFI_TARGET)/boot.efi TARGET=$(EFI_TARGET)
build/bootloader.efi: bootloader-efi/build/$(EFI_TARGET)/boot.efi
mkdir -p build
cp -v $< $@
build/harddrive-efi.bin: build/bootloader.efi build/filesystem.bin
# TODO: Validate the correctness of this \
# Populate an EFI system partition \
dd if=/dev/zero of=$@.esp bs=1048576 count=$$(expr $$(du -m $< | cut -f1) + 1) && \
mkfs.vfat $@.esp && \
mmd -i $@.esp efi && \
mmd -i $@.esp efi/boot && \
mcopy -i $@.esp $< ::efi/boot/bootx64.efi && \
# Create the disk \
dd if=/dev/zero of=$@ bs=1048576 count=$$(expr $$(du -m $< | cut -f1) + 2 + $$(du -m build/filesystem.bin | cut -f1)) && \
# Create partition table \
parted -s -a minimal $@ mklabel gpt && \
efi_disk_size=$$(du -m $< | cut -f1) && \
efi_disk_blkcount=$$(expr $$efi_disk_size \* $$(expr 1048576 / 512)) && \
efi_end=$$(expr 2048 + $$efi_disk_blkcount) && \
efi_last=$$(expr $$efi_end - 1) && \
parted -s -a minimal $@ mkpart EFI fat32 2048s "$${efi_last}s" && \
fs_disk_size=$$(du -m build/filesystem.bin | cut -f1) && \
fs_disk_blkcount=$$(expr $$fs_disk_size \* $$(expr 1048576 / 512)) && \
parted -s -a minimal $@ mkpart redox ext4 "$${efi_end}s" $$(expr $$efi_end + $$fs_disk_blkcount)s && \
parted -s -a minimal $@ set 1 boot on && \
parted -s -a minimal $@ set 1 esp on && \
# Write the partitions \
dd if=$@.esp bs=512 seek=2048 conv=notrunc count=$$efi_disk_blkcount of=$@ && \
dd if=build/filesystem.bin seek=$$efi_end bs=512 conv=notrunc of=$@ count=$$fs_disk_blkcount
build/livedisk-efi.iso: build/bootloader.efi build/kernel_live
dd if=/dev/zero of=$@.partial bs=1048576 count=$$(expr $$(du -mc $^ | grep 'total$$' | cut -f1) + 1)
mkfs.vfat $@.partial
mmd -i $@.partial efi
mmd -i $@.partial efi/boot
mcopy -i $@.partial $< ::efi/boot/bootx64.efi
mmd -i $@.partial redox_bootloader
mcopy -i $@.partial -s build/kernel_live ::redox_bootloader/kernel
$(BUILD)/livedisk.iso: $(FSTOOLS_TAG) $(REPO_TAG)
mkdir -p $(BUILD)
rm -rf $@ $@.partial
-$(FUMOUNT) /tmp/redox_installer || true
truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) --live $@.partial
mv $@.partial $@
$(BUILD)/filesystem.img: $(FSTOOLS_TAG) $(REPO_TAG)
mkdir -p $(BUILD)
-$(FUMOUNT) $(BUILD)/filesystem/ || true
rm -rf $@ $@.partial $(BUILD)/filesystem/
-$(FUMOUNT) /tmp/redox_installer || true
truncate -s "$(FILESYSTEM_SIZE)m" $@.partial
redoxfs/target/release/redoxfs-mkfs $(REDOXFS_MKFS_FLAGS) $@.partial
mkdir -p $(BUILD)/filesystem/
redoxfs/target/release/redoxfs $@.partial $(BUILD)/filesystem/
sleep 1
pgrep redoxfs
umask 002 && $(INSTALLER) -c $(FILESYSTEM_CONFIG) $(BUILD)/filesystem/
sync
-$(FUMOUNT) $(BUILD)/filesystem/ || true
rm -rf $(BUILD)/filesystem/
mv $@.partial $@
mount: $(FSTOOLS_TAG) FORCE
mkdir -p $(BUILD)/filesystem/
redoxfs/target/release/redoxfs $(BUILD)/harddrive.img $(BUILD)/filesystem/
sleep 2
pgrep redoxfs
mount_extra: $(FSTOOLS_TAG) FORCE
mkdir -p $(BUILD)/filesystem/
redoxfs/target/release/redoxfs $(BUILD)/extra.img $(BUILD)/filesystem/
sleep 2
pgrep redoxfs
unmount: FORCE
sync
-$(FUMOUNT) $(BUILD)/filesystem/ || true
rm -rf $(BUILD)/filesystem/
-$(FUMOUNT) /tmp/redox_installer || true

View File

@ -1,41 +0,0 @@
build/filesystem.bin: filesystem.toml build/bootloader build/kernel prefix
cargo build --manifest-path cookbook/Cargo.toml --release
cargo build --manifest-path installer/Cargo.toml --release
cargo build --manifest-path redoxfs/Cargo.toml --release
-$(FUMOUNT) build/filesystem/ || true
rm -rf $@ $@.partial build/filesystem/
dd if=/dev/zero of=$@.partial bs=1048576 count="$(FILESYSTEM_SIZE)"
cargo run --manifest-path redoxfs/Cargo.toml --release --bin redoxfs-mkfs $@.partial
mkdir -p build/filesystem/
redoxfs/target/release/redoxfs $@.partial build/filesystem/
sleep 2
pgrep redoxfs
cp $< build/filesystem/filesystem.toml
cp build/bootloader build/filesystem/bootloader
cp build/kernel build/filesystem/kernel
cp -r $(ROOT)/$(PREFIX_INSTALL)/$(TARGET)/include build/filesystem/include
cp -r $(ROOT)/$(PREFIX_INSTALL)/$(TARGET)/lib build/filesystem/lib
$(INSTALLER) -c $< build/filesystem/
sync
-$(FUMOUNT) build/filesystem/ || true
rm -rf build/filesystem/
mv $@.partial $@
mount: FORCE
mkdir -p build/filesystem/
cargo build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
redoxfs/target/release/redoxfs build/harddrive.bin build/filesystem/
sleep 2
pgrep redoxfs
mount_extra: FORCE
mkdir -p build/filesystem/
cargo build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs
redoxfs/target/release/redoxfs build/extra.bin build/filesystem/
sleep 2
pgrep redoxfs
unmount: FORCE
sync
-$(FUMOUNT) build/filesystem/ || true
rm -rf build/filesystem/

22
mk/fstools.mk Normal file
View File

@ -0,0 +1,22 @@
fstools: $(FSTOOLS_TAG)
$(FSTOOLS_TAG): cookbook installer redoxfs $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
$(HOST_CARGO) build --manifest-path cookbook/Cargo.toml --release
$(HOST_CARGO) build --manifest-path installer/Cargo.toml --release
$(HOST_CARGO) build --manifest-path redoxfs/Cargo.toml --release --bin redoxfs --bin redoxfs-mkfs
mkdir -p build
touch $@
endif
fstools_clean: FORCE $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
$(HOST_CARGO) clean --manifest-path cookbook/Cargo.toml
$(HOST_CARGO) clean --manifest-path installer/Cargo.toml
$(HOST_CARGO) clean --manifest-path redoxfs/Cargo.toml
rm -f $(FSTOOLS_TAG)
endif

View File

@ -1,40 +0,0 @@
INITFS_RM_BINS=alxd e1000d ihdad ixgbed pcspkrd redoxfs-ar redoxfs-mkfs rtl8168d usbctl usbhidd usbscsid xhcid
build/initfs.tag: initfs.toml prefix
cargo build --manifest-path cookbook/Cargo.toml --release
cargo build --manifest-path installer/Cargo.toml --release
rm -f build/libkernel.a
rm -rf build/initfs
mkdir -p build/initfs
$(INSTALLER) -c $< build/initfs/
#TODO: HACK FOR SMALLER INITFS, FIX IN PACKAGING
for bin in $(INITFS_RM_BINS); do \
rm -f build/initfs/bin/$$bin; \
done
touch $@
build/initfs_coreboot.tag: initfs_coreboot.toml prefix
cargo build --manifest-path cookbook/Cargo.toml --release
cargo build --manifest-path installer/Cargo.toml --release
rm -f build/libkernel_coreboot.a
rm -rf build/initfs_coreboot
mkdir -p build/initfs_coreboot
$(INSTALLER) -c $< build/initfs_coreboot/
#TODO: HACK FOR SMALLER INITFS, FIX IN PACKAGING
for bin in $(INITFS_RM_BINS); do \
rm -f build/initfs_coreboot/bin/$$bin; \
done
touch $@
build/initfs_live.tag: initfs_live.toml prefix
cargo build --manifest-path cookbook/Cargo.toml --release
cargo build --manifest-path installer/Cargo.toml --release
rm -f build/libkernel_live.a
rm -rf build/initfs_live
mkdir -p build/initfs_live
$(INSTALLER) -c $< build/initfs_live/
#TODO: HACK FOR SMALLER INITFS, FIX IN PACKAGING
for bin in $(INITFS_RM_BINS); do \
rm -f build/initfs_live/bin/$$bin; \
done
touch $@

View File

@ -1,43 +0,0 @@
build/libkernel.a: kernel/Cargo.lock kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* kernel/src/*/*/*/* build/initfs.tag
export PATH="$(PREFIX_PATH):$$PATH" && \
export INITFS_FOLDER=$(ROOT)/build/initfs && \
cd kernel && \
cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release -Z build-std=core,alloc -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@
build/libkernel_coreboot.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* kernel/src/*/*/*/* build/initfs_coreboot.tag
export PATH="$(PREFIX_PATH):$$PATH" && \
export INITFS_FOLDER=$(ROOT)/build/initfs_coreboot && \
cd kernel && \
cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release --features live -Z build-std=core,alloc -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@
build/libkernel_live.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* kernel/src/*/*/*/* build/initfs_live.tag
export PATH="$(PREFIX_PATH):$$PATH" && \
export INITFS_FOLDER=$(ROOT)/build/initfs_live && \
cd kernel && \
cargo rustc --lib --target=$(ROOT)/kernel/targets/$(KTARGET).json --release --features live -Z build-std=core,alloc -- -C soft-float -C debuginfo=2 -C lto --emit link=../$@
build/kernel: kernel/linkers/$(ARCH).ld build/libkernel.a
export PATH="$(PREFIX_PATH):$$PATH" && \
$(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel.a && \
$(OBJCOPY) --only-keep-debug $@ $@.sym && \
$(OBJCOPY) --strip-debug $@
build/kernel_coreboot: kernel/linkers/$(ARCH).ld build/libkernel_coreboot.a build/live.o
export PATH="$(PREFIX_PATH):$$PATH" && \
$(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel_coreboot.a build/live.o && \
$(OBJCOPY) --only-keep-debug $@ $@.sym && \
$(OBJCOPY) --strip-debug $@
build/kernel_live: kernel/linkers/$(ARCH).ld build/libkernel_live.a build/live.o
export PATH="$(PREFIX_PATH):$$PATH" && \
$(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel_live.a build/live.o && \
$(OBJCOPY) --only-keep-debug $@ $@.sym && \
$(OBJCOPY) --strip-debug $@
build/live.o: build/filesystem.bin
#TODO: More general use of $(ARCH)
export PATH="$(PREFIX_PATH):$$PATH" && \
$(OBJCOPY) -I binary -O elf64-x86-64 -B i386:x86-64 $< $@ \
--redefine-sym _binary_build_filesystem_bin_start=__live_start \
--redefine-sym _binary_build_filesystem_bin_end=__live_end \
--redefine-sym _binary_build_filesystem_bin_size=__live_size

65
mk/podman.mk Normal file
View File

@ -0,0 +1,65 @@
##############################################
# podman.mk - Use Podman to build components #
##############################################
# Configuration variables for running make in Podman
## Tag the podman image $IMAGE_TAG
IMAGE_TAG?=redox-base
## Working Directory in Podman
CONTAINER_WORKDIR?=/mnt/redox
## Podman Home Directory
PODMAN_HOME?=$(ROOT)/build/podman
## Podman command with its many arguments
PODMAN_VOLUMES?=--volume $(ROOT):$(CONTAINER_WORKDIR):Z --volume $(PODMAN_HOME):/home:Z
PODMAN_ENV?=--env PATH=/home/poduser/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env PODMAN_BUILD=0
PODMAN_CONFIG?=--env ARCH=$(ARCH) --env CONFIG_NAME=$(CONFIG_NAME) --env FILESYSTEM_CONFIG=$(FILESYSTEM_CONFIG)
PODMAN_OPTIONS?=--rm --workdir $(CONTAINER_WORKDIR) --userns keep-id --user `id -u` --interactive --tty --env TERM=$(TERM)
PODMAN_RUN?=podman run $(PODMAN_OPTIONS) $(PODMAN_VOLUMES) $(PODMAN_ENV) $(PODMAN_CONFIG) $(IMAGE_TAG)
container_shell: build/container.tag
ifeq ($(PODMAN_BUILD),1)
podman run $(PODMAN_VOLUMES) $(PODMAN_OPTIONS) $(PODMAN_ENV) --tty $(IMAGE_TAG) bash
else
@echo PODMAN_BUILD=$(PODMAN_BUILD), please set it to 1 in mk/config.mk
endif
container_su: FORCE
podman exec --user=0 --latest --interactive --tty bash
container_clean: FORCE
rm -f build/container.tag
@echo "If podman dir cannot be removed, remove with \"sudo rm\"."
-rm -rf $(PODMAN_HOME) || true
@echo "For complete clean of images and containers, use \"podman system reset\""
-podman image rm --force $(IMAGE_TAG) || true
container_touch: FORCE
ifeq ($(PODMAN_BUILD),1)
rm -f build/container.tag
podman image exists $(IMAGE_TAG) || (echo "Image does not exist, it will be rebuilt during normal make."; exit 1)
touch build/container.tag
else
@echo PODMAN_BUILD=$(PODMAN_BUILD), container not required.
endif
container_kill: FORCE
podman kill --latest --signal SIGKILL
## Must match the value of CONTAINER_TAG in config.mk
build/container.tag: $(CONTAINERFILE)
ifeq ($(PODMAN_BUILD),1)
rm -f build/container.tag
@echo "If podman_home dir cannot be removed, remove with \"sudo rm\"."
-rm -rf $(PODMAN_HOME) || true
-podman image rm --force $(IMAGE_TAG) || true
mkdir -p $(PODMAN_HOME)
@echo "Building Podman image. This may take some time."
sed s/_UID_/`id -u`/ $(CONTAINERFILE) | podman build --file - $(PODMAN_VOLUMES) --tag $(IMAGE_TAG)
@echo "Mapping Podman user space. Please wait."
$(PODMAN_RUN) bash -e podman/rustinstall.sh
mkdir -p build
touch $@
@echo "Podman ready!"
else
@echo PODMAN_BUILD=$(PODMAN_BUILD), container not required.
endif

View File

@ -3,8 +3,15 @@ PREFIX=prefix/$(TARGET)
PREFIX_INSTALL=$(PREFIX)/relibc-install
PREFIX_PATH=$(ROOT)/$(PREFIX_INSTALL)/bin
BINUTILS_BRANCH=redox-2.41
GCC_BRANCH=redox-13.2.0
export PREFIX_RUSTFLAGS=-L $(ROOT)/$(PREFIX_INSTALL)/$(TARGET)/lib
export RUSTUP_TOOLCHAIN=$(ROOT)/$(PREFIX_INSTALL)
export REDOXER_TOOLCHAIN=$(RUSTUP_TOOLCHAIN)
export CC=
export CXX=
prefix: $(PREFIX_INSTALL)
@ -15,21 +22,31 @@ PREFIX_STRIP=\
-exec strip --strip-unneeded {} ';' \
2> /dev/null
$(PREFIX)/relibc-install: $(ROOT)/relibc | $(PREFIX)/rust-install
$(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)
$(PODMAN_RUN) $(MAKE) $@
else
rm -rf "$@.partial" "$@"
cp -r "$(PREFIX)/rust-install" "$@.partial"
rm -rf "$@.partial/$(TARGET)/include/"*
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)/"
cd "$<" && \
export PATH="$(ROOT)/$@.partial/bin:$$PATH" && \
export CARGO="env -u CARGO xargo" && \
export CARGO="env -u CARGO cargo" && \
$(MAKE) clean && \
$(MAKE) -j `$(NPROC)` all && \
$(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
cd "$@.partial" && $(PREFIX_STRIP)
touch "$@.partial"
mv "$@.partial" "$@"
mkdir $@/lib/rustlib/src
ln -s $(ROOT)/rust $@/lib/rustlib/src
endif
$(PREFIX)/relibc-install.tar.gz: $(PREFIX)/relibc-install
tar \
@ -43,7 +60,8 @@ ifeq ($(PREFIX_BINARY),1)
$(PREFIX)/rust-install.tar.gz:
mkdir -p "$(@D)"
wget -O $@.partial "https://static.redox-os.org/toolchain/$(TARGET)/rust-install.tar.gz"
#TODO: figure out why rust-install.tar.gz is missing /lib/rustlib/$(HOST_TARGET)/lib
wget -O $@.partial "https://static.redox-os.org/toolchain/$(TARGET)/relibc-install.tar.gz"
mv $@.partial $@
$(PREFIX)/rust-install: $(PREFIX)/rust-install.tar.gz
@ -55,25 +73,32 @@ $(PREFIX)/rust-install: $(PREFIX)/rust-install.tar.gz
else
$(ROOT)/rust:
git submodule update --init --recursive --checkout rust
PREFIX_BASE_INSTALL=$(PREFIX)/rust-freestanding-install
PREFIX_FREESTANDING_INSTALL=$(PREFIX)/gcc-freestanding-install
PREFIX_BASE_PATH=$(ROOT)/$(PREFIX_BASE_INSTALL)/bin
PREFIX_FREESTANDING_PATH=$(ROOT)/$(PREFIX_FREESTANDING_INSTALL)/bin
$(PREFIX)/binutils.tar.bz2:
$(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2:
mkdir -p "$(@D)"
wget -O $@.partial "https://gitlab.redox-os.org/redox-os/binutils-gdb/-/archive/redox/binutils-gdb-redox.tar.bz2"
rm -fv $(PREFIX)/binutils*.tar.bz2*
wget -O $@.partial "https://gitlab.redox-os.org/redox-os/binutils-gdb/-/archive/$(BINUTILS_BRANCH)/binutils-gdb-$(BINUTILS_BRANCH).tar.bz2"
mv $@.partial $@
$(PREFIX)/binutils: $(PREFIX)/binutils.tar.bz2
$(PREFIX)/binutils: $(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2
rm -rf "$@.partial" "$@"
mkdir -p "$@.partial"
tar --extract --file "$<" --directory "$@.partial" --strip-components=1
touch "$@.partial"
mv "$@.partial" "$@"
$(PREFIX)/binutils-install: $(PREFIX)/binutils
$(PREFIX)/binutils-install: $(PREFIX)/binutils $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
rm -rf "$<-build" "$@.partial" "$@"
mkdir -p "$<-build" "$@.partial"
cd "$<-build" && \
@ -89,20 +114,25 @@ $(PREFIX)/binutils-install: $(PREFIX)/binutils
cd "$@.partial" && $(PREFIX_STRIP)
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/gcc.tar.bz2:
$(PREFIX)/gcc-$(GCC_BRANCH).tar.bz2:
mkdir -p "$(@D)"
wget -O $@.partial "https://gitlab.redox-os.org/redox-os/gcc/-/archive/redox/gcc-redox.tar.bz2"
rm -fv $(PREFIX)/gcc*.tar.bz2*
wget -O $@.partial "https://gitlab.redox-os.org/redox-os/gcc/-/archive/$(GCC_BRANCH)/gcc-$(GCC_BRANCH).tar.bz2"
mv "$@.partial" "$@"
$(PREFIX)/gcc: $(PREFIX)/gcc.tar.bz2
$(PREFIX)/gcc: $(PREFIX)/gcc-$(GCC_BRANCH).tar.bz2
mkdir -p "$@.partial"
tar --extract --file "$<" --directory "$@.partial" --strip-components=1
cd "$@.partial" && ./contrib/download_prerequisites
touch "$@.partial"
mv "$@.partial" "$@"
$(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install
$(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
rm -rf "$<-freestanding-build" "$@.partial" "$@"
mkdir -p "$<-freestanding-build"
cp -r "$(PREFIX)/binutils-install" "$@.partial"
@ -122,8 +152,12 @@ $(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install
cd "$@.partial" && $(PREFIX_STRIP)
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/rust-freestanding-install: $(ROOT)/rust | $(PREFIX)/binutils-install
$(PREFIX)/rust-freestanding-install: $(ROOT)/rust | $(PREFIX)/binutils-install $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
rm -rf "$(PREFIX)/rust-freestanding-build" "$@.partial" "$@"
mkdir -p "$(PREFIX)/rust-freestanding-build"
cp -r "$(PREFIX)/binutils-install" "$@.partial"
@ -132,33 +166,47 @@ $(PREFIX)/rust-freestanding-install: $(ROOT)/rust | $(PREFIX)/binutils-install
"$</configure" \
--prefix="/" \
--disable-docs \
--disable-download-ci-llvm \
--enable-cargo-native-static \
--enable-extended \
--enable-lld \
--enable-llvm-static-stdcpp \
--tools=cargo \
--set 'llvm.targets=AArch64;X86' \
--set 'llvm.experimental-targets=' \
--tools=cargo,src \
&& \
$(MAKE) -j `$(NPROC)` && \
$(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial"
rm -rf "$(PREFIX)/rust-freestanding-build"
mkdir -p "$@.partial/lib/rustlib/x86_64-unknown-linux-gnu/bin"
mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/bin"
mkdir -p "$@.partial/lib/rustlib/$(HOST_TARGET)/lib"
cd "$@.partial" && $(PREFIX_STRIP)
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/relibc-freestanding-install: $(ROOT)/relibc | $(PREFIX_BASE_INSTALL) $(PREFIX_FREESTANDING_INSTALL)
$(PREFIX)/relibc-freestanding-install: $(ROOT)/relibc | $(PREFIX_BASE_INSTALL) $(PREFIX_FREESTANDING_INSTALL) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
rm -rf "$@.partial" "$@"
mkdir -p "$@.partial"
cd "$<" && \
export PATH="$(PREFIX_BASE_PATH):$(PREFIX_FREESTANDING_PATH):$$PATH" && \
export CARGO="env -u CARGO -u RUSTUP_TOOLCHAIN xargo" && \
export CARGO="env -u CARGO -u RUSTUP_TOOLCHAIN cargo" && \
export CC_$(subst -,_,$(TARGET))="$(TARGET)-gcc -isystem $(ROOT)/$@.partial/$(TARGET)/include" && \
$(MAKE) clean && \
$(MAKE) -j `$(NPROC)` all && \
$(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial/$(TARGET)"
cd "$@.partial" && $(PREFIX_STRIP)
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/gcc-install: $(PREFIX)/gcc | $(PREFIX)/relibc-freestanding-install
$(PREFIX)/gcc-install: $(PREFIX)/gcc | $(PREFIX)/relibc-freestanding-install $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
rm -rf "$<-build" "$@.partial" "$@"
mkdir -p "$<-build"
cp -r "$(PREFIX_BASE_INSTALL)" "$@.partial"
@ -185,6 +233,7 @@ $(PREFIX)/gcc-install: $(PREFIX)/gcc | $(PREFIX)/relibc-freestanding-install
cd "$@.partial" && $(PREFIX_STRIP)
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/gcc-install.tar.gz: $(PREFIX)/gcc-install
tar \
@ -194,7 +243,10 @@ $(PREFIX)/gcc-install.tar.gz: $(PREFIX)/gcc-install
--directory="$<" \
.
$(PREFIX)/rust-install: $(ROOT)/rust | $(PREFIX)/gcc-install $(PREFIX)/relibc-freestanding-install
$(PREFIX)/rust-install: $(ROOT)/rust | $(PREFIX)/gcc-install $(PREFIX)/relibc-freestanding-install $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
rm -rf "$(PREFIX)/rust-build" "$@.partial" "$@"
mkdir -p "$(PREFIX)/rust-build"
cp -r "$(PREFIX)/gcc-install" "$@.partial"
@ -204,20 +256,25 @@ $(PREFIX)/rust-install: $(ROOT)/rust | $(PREFIX)/gcc-install $(PREFIX)/relibc-fr
"$</configure" \
--prefix="/" \
--disable-docs \
--disable-download-ci-llvm \
--enable-cargo-native-static \
--enable-dist-src \
--enable-extended \
--enable-lld \
--enable-llvm-static-stdcpp \
--tools=cargo \
--target="$(TARGET)" \
--tools=cargo,src \
--target="$(HOST_TARGET),$(TARGET)" \
&& \
$(MAKE) -j `$(NPROC)` && \
rm -rf "$(ROOT)/$@.partial/lib/rustlib" "$(ROOT)/$@.partial/share/doc/rust" && \
rm -rf $(ROOT)/$@.partial/lib/rustlib/{components,install.log,rust-installer-version,uninstall.sh,manifest-*} "$(ROOT)/$@.partial/share/doc/rust" && \
$(MAKE) -j `$(NPROC)` install DESTDIR="$(ROOT)/$@.partial"
rm -rf "$(PREFIX)/rust-build"
mkdir -p "$@.partial/lib/rustlib/x86_64-unknown-linux-gnu/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)
touch "$@.partial"
mv "$@.partial" "$@"
endif
$(PREFIX)/rust-install.tar.gz: $(PREFIX)/rust-install
tar \

View File

@ -1,23 +1,98 @@
QEMU=SDL_VIDEO_X11_DGAMOUSE=0 qemu-system-$(ARCH)
QEMUFLAGS=-d cpu_reset -d guest_errors
QEMUFLAGS+=-smp 4 -m 2048
QEMU_EFI=/usr/share/OVMF/OVMF_CODE.fd
QEMU=SDL_VIDEO_X11_DGAMOUSE=0 qemu-system-$(QEMU_ARCH)
QEMUFLAGS=-d guest_errors -name "Redox OS $(ARCH)"
ifeq ($(ARCH),i686)
audio?=ac97
efi=no
QEMU_ARCH=i386
QEMU_MACHINE?=pc
QEMU_CPU?=pentium2
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)
QEMU_ARCH=x86_64
QEMU_MACHINE?=q35
QEMU_CPU?=core2duo
QEMU_EFI=/usr/share/OVMF/OVMF_CODE.fd
QEMUFLAGS+=-smp 4 -m 2048
else ifeq ($(ARCH),aarch64)
efi=yes
live=yes
QEMU_ARCH=aarch64
QEMU_MACHINE=virt
QEMU_CPU=max
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
ifneq ($(vga),no)
QEMUFLAGS+=-device ramfb
endif
ifneq ($(usb),no)
QEMUFLAGS+=-device usb-ehci -device usb-kbd -device usb-mouse
endif
else
$(error Unsupported ARCH for QEMU "$(ARCH)"))
endif
# If host and target arch do not match, disable kvm
# (unless overridden above or by environment)
ifneq ($(ARCH),$(HOST_ARCH))
kvm?=no
endif
ifeq ($(efi),yes)
FIRMWARE=$(BUILD)/firmware.rom
QEMUFLAGS+=-bios $(BUILD)/firmware.rom
else
FIRMWARE=
endif
ifeq ($(live),yes)
DISK=$(BUILD)/livedisk.iso
else
DISK=$(BUILD)/harddrive.img
endif
ifeq ($(serial),no)
QEMUFLAGS+=-chardev stdio,id=debug -device isa-debugcon,iobase=0x402,chardev=debug
else
QEMUFLAGS+=-chardev stdio,id=debug,signal=off,mux=on,"$(if $(qemu_serial_logfile),logfile=$(qemu_serial_logfile))"
QEMUFLAGS+=-serial chardev:debug -mon chardev=debug
endif
ifeq ($(iommu),yes)
QEMUFLAGS+=-machine q35,iommu=on
QEMUFLAGS+=-machine $(QEMU_MACHINE),iommu=on
else
QEMUFLAGS+=-machine q35
QEMUFLAGS+=-machine $(QEMU_MACHINE)
endif
ifneq ($(audio),no)
QEMUFLAGS+=-device ich9-intel-hda -device hda-duplex
ifeq ($(audio),no)
# No audio
else ifeq ($(audio),ac97)
# AC'97
QEMUFLAGS+=-device AC97
else
# Intel High Definition Audio
QEMUFLAGS+=-device ich9-intel-hda -device hda-output
endif
ifeq ($(net),no)
QEMUFLAGS+=-net none
else ifeq ($(net),rtl8139)
# RTL8139
QEMUFLAGS+=-netdev user,id=net0 -device rtl8139,netdev=net0 \
-object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
else ifeq ($(net),virtio)
# virtio-net
QEMUFLAGS+=-netdev user,id=net0 -device virtio-net,netdev=net0 \
-object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
else
ifneq ($(bridge),)
QEMUFLAGS+=-netdev bridge,br=$(bridge),id=net0 -device e1000,netdev=net0,id=nic0
@ -28,127 +103,94 @@ else
QEMUFLAGS+=-netdev user,id=net0,hostfwd=tcp::8080-:8080,hostfwd=tcp::8083-:8083,hostfwd=tcp::64126-:64126 -device e1000,netdev=net0,id=nic0
else
QEMUFLAGS+=-netdev user,id=net0 -device e1000,netdev=net0 \
-object filter-dump,id=f1,netdev=net0,file=build/network.pcap
-object filter-dump,id=f1,netdev=net0,file=$(BUILD)/network.pcap
endif
endif
endif
ifeq ($(vga),no)
QEMUFLAGS+=-nographic -vga none
else ifeq ($(vga),multi)
QEMUFLAGS+=-display sdl -vga std -device secondary-vga
else ifeq ($(vga),virtio)
QEMUFLAGS+=-vga virtio
endif
ifneq ($(usb),no)
QEMUFLAGS+=-device nec-usb-xhci,id=xhci -device usb-tablet,bus=xhci.0
QEMUFLAGS+=-device nec-usb-xhci,id=xhci
endif
ifeq ($(gdb),yes)
QEMUFLAGS+=-s
QEMUFLAGS+=-d cpu_reset -s -S
endif
ifeq ($(UNAME),Linux)
ifneq ($(kvm),no)
QEMUFLAGS+=-enable-kvm -cpu host
else
QEMUFLAGS+=-cpu max
QEMUFLAGS+=-cpu $(QEMU_CPU)
endif
endif
#,int,pcall
#-device intel-iommu
ifeq ($(UNAME),Linux)
build/extra.bin:
fallocate --posix --length 1G $@
else
build/extra.bin:
truncate -s 1g $@
ifeq ($(UNAME),Darwin)
QEMUFLAGS+=-cpu $(QEMU_CPU)
endif
qemu: build/harddrive.bin build/extra.bin
$(QEMU) $(QEMUFLAGS) \
-drive file=build/harddrive.bin,format=raw \
-drive file=build/extra.bin,format=raw
$(BUILD)/extra.img:
truncate -s 1g $@
qemu_no_build: build/extra.bin
$(QEMU) $(QEMUFLAGS) \
-drive file=build/harddrive.bin,format=raw \
-drive file=build/extra.bin,format=raw
$(BUILD)/firmware.rom:
ifeq ($(ARCH),aarch64)
wget -O $@ $(QEMU_EFI)
else
cp $(QEMU_EFI) $@
endif
qemu_efi: build/harddrive-efi.bin build/extra.bin
qemu: $(DISK) $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \
-bios $(QEMU_EFI) \
-drive file=build/harddrive-efi.bin,format=raw \
-drive file=build/extra.bin,format=raw
-drive file=$(DISK),format=raw \
-drive file=$(BUILD)/extra.img,format=raw
qemu_efi_no_build: build/extra.bin
qemu_no_build: $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \
-bios $(QEMU_EFI) \
-drive file=build/harddrive-efi.bin,format=raw \
-drive file=build/extra.bin,format=raw
-drive file=$(DISK),format=raw \
-drive file=$(BUILD)/extra.img,format=raw
qemu_nvme: build/harddrive.bin build/extra.bin
qemu_cdrom: $(DISK) $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \
-drive file=build/harddrive.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
-boot d -cdrom $(DISK) \
-drive file=$(BUILD)/extra.img,format=raw
qemu_nvme_no_build: build/extra.bin
qemu_cdrom_no_build: $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \
-drive file=build/harddrive.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
-boot d -cdrom $(DISK) \
-drive file=$(BUILD)/extra.img,format=raw
qemu_nvme_efi: build/harddrive-efi.bin build/extra.bin
qemu_nvme: $(DISK) $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \
-bios $(QEMU_EFI) \
-drive file=build/harddrive-efi.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
-drive file=$(DISK),format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
-drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
qemu_nvme_efi_no_build: build/extra.bin
qemu_nvme_no_build: $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \
-bios $(QEMU_EFI) \
-drive file=build/harddrive-efi.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
-drive file=$(DISK),format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
-drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
qemu_nvme_live: build/livedisk.bin build/extra.bin
qemu_usb: $(DISK) $(FIRMWARE)
$(QEMU) $(QEMUFLAGS) \
-drive file=build/livedisk.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
-drive if=none,id=usbstick,format=raw,file=$(DISK) \
-device usb-storage,drive=usbstick
qemu_nvme_live_no_build: build/extra.bin
qemu_extra: $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \
-drive file=build/livedisk.bin,format=raw,if=none,id=drv0 -device nvme,drive=drv0,serial=NVME_SERIAL \
-drive file=build/extra.bin,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
-drive file=$(BUILD)/extra.img,format=raw
qemu_live: build/livedisk.bin build/extra.bin
qemu_nvme_extra: $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \
-drive file=build/livedisk.bin,format=raw \
-drive file=build/extra.bin,format=raw
-drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
qemu_live_no_build: build/extra.bin
$(QEMU) $(QEMUFLAGS) \
-drive file=build/livedisk.bin,format=raw \
-drive file=build/extra.bin,format=raw
qemu_iso: build/livedisk.iso build/extra.bin
$(QEMU) $(QEMUFLAGS) \
-boot d -cdrom build/livedisk.iso \
-drive file=build/extra.bin,format=raw
qemu_iso_no_build: build/extra.bin
$(QEMU) $(QEMUFLAGS) \
-boot d -cdrom build/livedisk.iso \
-drive file=build/extra.bin,format=raw
qemu_iso_efi: build/livedisk-efi.iso build/extra.bin
$(QEMU) $(QEMUFLAGS) \
-bios $(QEMU_EFI) \
-boot d -cdrom build/livedisk-efi.iso \
-drive file=build/extra.bin,format=raw
qemu_iso_efi_no_build: build/extra.bin
$(QEMU) $(QEMUFLAGS) \
-bios $(QEMU_EFI) \
-boot d -cdrom build/livedisk-efi.iso \
-drive file=build/extra.bin,format=raw
qemu_extra: build/extra.bin
$(QEMU) $(QEMUFLAGS) \
-drive file=build/extra.bin,format=raw
qemu_nvme_extra: build/extra.bin
$(QEMU) $(QEMUFLAGS) \
-drive file=build/extra.bin,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)

82
mk/repo.mk Normal file
View File

@ -0,0 +1,82 @@
$(BUILD)/fetch.tag: prefix $(FSTOOLS_TAG) $(FILESYSTEM_CONFIG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
PACKAGES="$$($(INSTALLER) --list-packages -c $(FILESYSTEM_CONFIG))" && \
cd cookbook && \
./fetch.sh "$${PACKAGES}"
mkdir -p $(BUILD)
touch $@
endif
$(BUILD)/repo.tag: $(BUILD)/fetch.tag $(FSTOOLS_TAG) $(CONTAINER_TAG)
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
PACKAGES="$$($(INSTALLER) --list-packages -c $(FILESYSTEM_CONFIG))" && \
cd cookbook && \
./repo.sh $(REPO_NONSTOP) "$${PACKAGES}"
mkdir -p $(BUILD)
# make sure fetch.tag is newer than the things repo modifies
touch $<
touch $@
endif
# Invoke clean.sh for a single target
c.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
cd cookbook && \
./clean.sh $*
endif
# Invoke fetch.sh for a single target
f.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
cd cookbook && \
./fetch.sh $*
endif
# Invoke repo.sh for a single target
r.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
cd cookbook && \
./repo.sh $*
endif
# Invoke unfetch.sh for a single target
u.%: $(FSTOOLS_TAG) FORCE
ifeq ($(PODMAN_BUILD),1)
$(PODMAN_RUN) $(MAKE) $@
else
export PATH="$(PREFIX_PATH):$$PATH" && \
cd cookbook && \
./unfetch.sh $*
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

@ -1,4 +1,4 @@
virtualbox: build/harddrive.bin
virtualbox: $(BUILD)/harddrive.img
echo "Delete VM"
-$(VBM) unregistervm Redox --delete; \
if [ $$? -ne 0 ]; \
@ -31,11 +31,12 @@ virtualbox: build/harddrive.bin
$(VBM) modifyvm Redox --mouse ps2
$(VBM) modifyvm Redox --audio $(VB_AUDIO)
$(VBM) modifyvm Redox --audiocontroller hda
$(VBM) modifyvm Redox --audioout on
$(VBM) modifyvm Redox --nestedpaging on
echo "Create Disk"
$(VBM) convertfromraw $< build/harddrive.vdi
$(VBM) convertfromraw $< $(BUILD)/harddrive.vdi
echo "Attach Disk"
$(VBM) storagectl Redox --name ATA --add sata --controller IntelAHCI --bootable on --portcount 1
$(VBM) storageattach Redox --storagectl ATA --port 0 --device 0 --type hdd --medium build/harddrive.vdi
$(VBM) storageattach Redox --storagectl ATA --port 0 --device 0 --type hdd --medium $(BUILD)/harddrive.vdi
echo "Run VM"
$(VBM) startvm Redox

View File

@ -0,0 +1,61 @@
FROM ubuntu:latest
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
autoconf \
automake \
autopoint \
bison \
build-essential \
ca-certificates \
cmake \
curl \
file \
flex \
fuse3 \
genisoimage \
git \
gperf \
libc6-dev-i386 \
libexpat-dev \
libfuse-dev \
libfuse3-dev \
libgmp-dev \
libhtml-parser-perl \
libtool \
libfontconfig1-dev \
libpng-dev \
libjpeg-dev \
libsdl2-ttf-dev \
libsdl1.2-dev \
m4 \
nasm \
pkg-config \
po4a \
syslinux-utils \
texinfo \
ninja-build \
meson \
python3-mako \
xxd \
rsync \
wget \
python3 \
make \
xdg-utils \
zip \
unzip \
llvm \
clang \
perl \
doxygen \
ant \
protobuf-compiler \
intltool
# _UID_ must be replaced with the user's uid on host
# podman root is mapped to your user id on host during build,
# poduser is mapped to your user id during podman run
RUN useradd --create-home --no-log-init --uid _UID_ poduser && \
chown -R root:root /home

8
podman/rustinstall.sh Executable file
View File

@ -0,0 +1,8 @@
#/usr/bin/env bash
# Install Rust in Podman, after the image has been built
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 1.16.0 just
cargo install --force --version 0.26.0 cbindgen

639
podman_bootstrap.sh Executable file
View File

@ -0,0 +1,639 @@
#!/usr/bin/env bash
set -e
##########################################################
# This function is simply a banner to introduce the script
##########################################################
banner()
{
echo "|------------------------------------------|"
echo "|----- Welcome to the redox bootstrap -----|"
echo "|-------- for building with Podman --------|"
echo "|------------------------------------------|"
}
###################################################################################
# This function takes care of installing a dependency via package manager of choice
# for building Redox on BSDs (macOS, FreeBSD, etc.).
# @params: $1 package manager
# $2 package name
# $3 binary name (optional)
###################################################################################
install_bsd_pkg()
{
PKG_MANAGER=$1
PKG_NAME=$2
BIN_NAME=$3
if [ -z "$BIN_NAME" ]; then
BIN_NAME=$PKG_NAME
fi
BIN_LOCATION=$(which $BIN_NAME || true)
if [ -z "$BIN_LOCATION" ]; then
echo "$PKG_MANAGER install $PKG_NAME"
$PKG_MANAGER install "$PKG_NAME"
else
echo "$BIN_NAME already exists at $BIN_LOCATION, no need to install $PKG_NAME..."
fi
}
install_macports_pkg()
{
install_bsd_pkg "sudo port" "$1" "$2"
}
install_brew_pkg()
{
install_bsd_pkg "brew" $@
}
install_brew_cask_pkg()
{
install_bsd_pkg "brew cask" $@
}
install_freebsd_pkg()
{
install_bsd_pkg "sudo pkg" $@
}
###############################################################################
# This function checks which of the supported package managers
# is available on the macOS host.
# If a supported package manager is found, it delegates the installing work to
# the relevant function.
# Otherwise this function will exit this script with an error.
###############################################################################
osx()
{
echo "Detected macOS!"
if [ ! -z "$(which brew)" ]; then
osx_homebrew $@
elif [ ! -z "$(which port)" ]; then
osx_macports $@
else
echo "Please install either Homebrew or MacPorts, if you wish to use this script"
echo "Re-run this script once you installed one of those package managers"
echo "Will not install, now exiting..."
exit 1
fi
}
###############################################################################
# This function takes care of installing all dependencies using MacPorts
# for building Redox on macOS
# @params: $1 the emulator to install, "virtualbox" or "qemu"
###############################################################################
osx_macports()
{
echo "MacPorts detected! Now updating..."
sudo port -v selfupdate
echo "Installing missing packages..."
install_macports_pkg "git"
if [ "$1" == "qemu" ]; then
install_macports_pkg "qemu" "qemu-system-x86_64"
elif [ "$1" == "virtualbox" ]; then
install_macports_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi
install_macports_pkg "osxfuse"
install_macports_pkg "podman"
}
###############################################################################
# This function takes care of installing all dependencies using Homebrew
# for building Redox on macOS
# @params: $1 the emulator to install, "virtualbox" or "qemu"
###############################################################################
osx_homebrew()
{
echo "Homebrew detected! Now updating..."
brew update
echo "Installing missing packages..."
install_brew_pkg "git"
if [ "$1" == "qemu" ]; then
install_brew_pkg "qemu" "qemu-system-x86_64"
elif [ "$1" == "virtualbox" ]; then
install_brew_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi
install_brew_pkg "make"
install_brew_pkg "podman"
}
###############################################################################
# This function takes care of installing all dependencies using pkg
# for building Redox on FreeBSD
# @params: $1 the emulator to install, "virtualbox" or "qemu"
###############################################################################
freebsd()
{
set -x
echo "FreeBSD detected!"
echo "Installing missing packages..."
install_freebsd_pkg "git"
if [ "$1" == "qemu" ]; then
install_freebsd_pkg "qemu" "qemu-system-x86_64"
elif [ "$1" == "virtualbox" ]; then
install_freebsd_pkg "virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi
install_freebsd_pkg "gmake"
install_freebsd_pkg "podman"
set +x
}
###############################################################################
# This function takes care of installing all dependencies for building Redox on
# Arch Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
###############################################################################
archLinux()
{
echo "Detected Arch Linux"
packages="git podman fuse"
if [ "$1" == "qemu" ]; then
packages="$packages qemu"
elif [ "$1" == "virtualbox" ]; then
packages="$packages virtualbox"
else
echo "Unknown emulator: $1"
exit 1
fi
# 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
# user will figure out the issues (without updating if required) and rerun
# the script.
#echo "Updating system..."
#sudo pacman -Syu
echo "Installing packages $packages..."
sudo pacman -S --needed $packages
}
###############################################################################
# This function takes care of installing all dependencies for building Redox on
# Debian-based Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
# $2 the package manager to use
###############################################################################
ubuntu()
{
echo "Detected Ubuntu/Debian"
echo "Updating system..."
sudo "$2" update
echo "Installing required packages..."
sudo "$2" install \
podman curl git make libfuse-dev
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Installing QEMU..."
sudo "$2" install qemu-system-x86 qemu-kvm
sudo "$2" install qemu-efi-arm qemu-system-arm
else
echo "QEMU already installed!"
fi
elif [ "$1" == "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..."
sudo "$2" install virtualbox
fi
else
echo "VirtualBox already installed!"
fi
else
echo "Unknown emulator: $1"
exit 1
fi
}
###############################################################################
# This function takes care of installing all dependencies for building Redox on
# Fedora Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
###############################################################################
fedora()
{
echo "Detected Fedora"
if [ -z "$(which git)" ]; then
echo "Installing git..."
sudo dnf install git-all
fi
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Installing QEMU..."
sudo dnf install qemu-system-x86 qemu-kvm
else
echo "QEMU already installed!"
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
else
echo "Unknown emulator: $1"
exit 1
fi
# 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)
# If the list of packages is not empty, install missing
COUNT=$(echo $PKGS | wc -w)
if [ $COUNT -ne 0 ]; then
echo "Installing necessary build tools..."
sudo dnf install $PKGS
fi
}
###############################################################################
# This function takes care of installing all dependencies for building Redox on
# *SUSE Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
###############################################################################
suse()
{
echo "Detected SUSE Linux"
packages=(
"make"
"fuse-devel"
"podman"
)
if [ -z "$(which git)" ]; then
echo "Will install git ..."
packages+=(git)
fi
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Will install QEMU..."
packages+=(qemu-x86 qemu-kvm)
else
echo "QEMU already installed!"
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
else
echo "Unknown emulator: $1"
exit 1
fi
echo "Installing necessary build tools..."
# 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
# Gentoo Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
##############################################################################
gentoo()
{
echo "Detected Gentoo Linux"
if [ -z "$(which git)" ]; then
echo "Installing git..."
sudo emerge dev-vcs/git
fi
if [ -z "$(which fusermount 2>/dev/null)" ] && [ -z "$(which fusermount3 2>/dev/null)" ]; then
echo "Installing fuse..."
sudo emerge sys-fs/fuse
fi
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Please install QEMU and re-run this script"
echo "Step1. Add QEMU_SOFTMMU_TARGETS=\"x86_64\" to /etc/portage/make.conf"
echo "Step2. Execute \"sudo emerge app-emulation/qemu\""
exit 1
else
echo "QEMU already installed!"
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
else
echo "Unknown emulator: $1"
exit 1
fi
if [ -z "$(which cmake)" ]; then
echo "Installing cmake..."
sudo emerge dev-util/cmake
fi
if [ -z "$(which podman)" ]; then
echo "Please install Podman, https://wiki.gentoo.org/wiki/Podman"
exit 1
fi
}
##############################################################################
# This function takes care of installing all dependencies for building Redox on
# Solus
# @params: $1 the emulator to install, "virtualbox" or "qemu"
##############################################################################
solus()
{
echo "Detected Solus"
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
sudo eopkg it qemu
else
echo "QEMU already installed!"
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
else
echo "Unknown emulator: $1"
exit 1
fi
echo "Installing necessary build tools..."
#if guards are not necessary with eopkg since it does nothing if latest version is already installed
sudo eopkg it fuse-devel git make fuse2-devel rsync
if [ -z "$(which podman)" ]; then
echo "Please install Podman"
exit 1
fi
}
######################################################################
# This function outlines the different options available for bootstrap
######################################################################
usage()
{
echo "------------------------"
echo "|Redox bootstrap script|"
echo "------------------------"
echo "Usage: ./podman_bootstrap.sh"
echo "OPTIONS:"
echo
echo " -h,--help Show this prompt"
echo " -u [branch] Update git repo and update rust"
echo " If blank defaults to master"
echo " -s Check the status of the current travis build"
echo " -e [emulator] Install specific emulator, virtualbox or qemu"
echo " -p [package Choose an Ubuntu package manager, apt-fast or"
echo " manager] aptitude"
echo " -d Only install the dependencies, skip boot step"
echo "EXAMPLES:"
echo
echo "./podman_bootstrap.sh -e qemu"
exit
}
#############################################################
# Looks for and installs a cargo-managed binary or subcommand
#############################################################
cargoInstall() {
if [[ "`cargo install --list`" != *"$1 v$2"* ]]; then
cargo install --force --version "$2" "$1"
else
echo "You have $1 version $2 installed already!"
fi
}
####################################################################
# This function gets the current build status from travis and prints
# a message to the user
####################################################################
statusCheck() {
for i in $(echo "$(curl -sf https://api.travis-ci.org/repositories/redox-os/redox.json)" | tr "," "\n")
do
if echo "$i" | grep -iq "last_build_status" ;then
if echo "$i" | grep -iq "0" ;then
echo
echo "********************************************"
echo "Travis reports that the last build succeeded!"
echo "Looks like you are good to go!"
echo "********************************************"
elif echo "$i" | grep -iq "null" ;then
echo
echo "******************************************************************"
echo "The Travis build did not finish, this is an error with its config."
echo "I cannot reliably determine whether the build is succeeding or not."
echo "Consider checking for and maybe opening an issue on gitlab"
echo "******************************************************************"
else
echo
echo "**************************************************"
echo "Travis reports that the last build *FAILED* :("
echo "Might want to check out the issues before building"
echo "**************************************************"
fi
fi
done
}
###########################################################################
# This function is the main logic for the bootstrap; it clones the git repo
# then it installs the dependent packages
###########################################################################
boot()
{
echo "Cloning gitlab repo..."
git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive
echo "Creating .config with PODMAN_BUILD=1"
echo 'PODMAN_BUILD?=1' > redox/.config
echo "Cleaning up..."
rm podman_bootstrap.sh
echo
echo "---------------------------------------"
echo "Well it looks like you are ready to go!"
echo "---------------------------------------"
statusCheck
echo "The file redox/.config was created with PODMAN_BUILD=1."
echo "Run the following commands to build redox using Podman:"
echo
echo "cd redox"
MAKE="make"
if [[ "$(uname)" == "FreeBSD" ]]; then
MAKE="gmake"
echo "kldload fuse.ko # This loads the kernel module for FUSE"
fi
echo "$MAKE all"
echo "$MAKE virtualbox or qemu"
echo
echo " Good luck!"
exit
}
if [ "$1" == "-h" ] || [ "$1" == "--help" ]; then
usage
elif [ "$1" == "-u" ]; then
git pull upstream master
git submodule update --recursive --init
rustup update nightly
exit
elif [ "$1" == "-s" ]; then
statusCheck
exit
fi
emulator="qemu"
defpackman="apt-get"
dependenciesonly=false
update=false
while getopts ":e:p:udhs" opt
do
case "$opt" in
e) emulator="$OPTARG";;
p) defpackman="$OPTARG";;
d) dependenciesonly=true;;
u) update=true;;
h) usage;;
s) statusCheck && exit;;
\?) echo "I don't know what to do with that option, try -h for help"; exit 1;;
esac
done
banner
if [ "$update" == "true" ]; then
git pull upstream master
git submodule update --recursive --init
exit
fi
if [ "Darwin" == "$(uname -s)" ]; then
osx "$emulator"
else
# Here we will use package managers to determine which operating system the user is using.
# SUSE and derivatives
if hash 2>/dev/null zypper; then
suse "$emulator"
# Debian or any derivative of it
elif hash 2>/dev/null apt-get; then
ubuntu "$emulator" "$defpackman"
# Fedora
elif hash 2>/dev/null dnf; then
fedora "$emulator"
# Gentoo
elif hash 2>/dev/null emerge; then
gentoo "$emulator"
# Solus
elif hash 2>/dev/null eopkg; then
solus "$emulator"
# Arch Linux
elif hash 2>/dev/null pacman; then
archLinux "$emulator"
# FreeBSD
elif hash 2>/dev/null pkg; then
freebsd "$emulator"
# Unsupported platform
else
printf "\e[31;1mFatal error: \e[0;31mUnsupported platform, please open an issue\e[0m\n"
fi
fi
if [ "$dependenciesonly" = false ]; then
boot
fi
echo "Redox bootstrap complete!"

@ -1 +1 @@
Subproject commit f1b88c38c0a9b6bf9e24f82397a8a9505c9a2df2
Subproject commit 14a07dc268ec41db87d4f453022ac8805b918d20

2
relibc

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

2
rust

@ -1 +1 @@
Subproject commit fb4ac5ad6ecbde2d46c021b1c7efe55a049475c3
Subproject commit e9ed31b0540da8c7eae71de353a741294139ae8b

View File

@ -1 +0,0 @@
nightly-2020-07-27

3
rust-toolchain.toml Normal file
View File

@ -0,0 +1,3 @@
[toolchain]
channel = "nightly-2023-09-07"
components = ["rust-src"]

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

49
scripts/changelog.sh Executable file
View File

@ -0,0 +1,49 @@
#!/usr/bin/env bash
set -e
LAST_RELEASE_TAG="$(git describe --tags --abbrev=0)"
LAST_RELEASE_TIMESTAMP="$(git log --format="%ct" -1 "${LAST_RELEASE_TAG}")"
echo "Last release: ${LAST_RELEASE_TAG} at ${LAST_RELEASE_TIMESTAMP}"
REPOS=(
redox=.
cookbook=cookbook
rust=rust
)
for package in $(installer/target/release/redox_installer --list-packages -c config/$(uname -m)/desktop.toml)
do
REPOS+=("${package}=cookbook/recipes/${package}/source")
done
# TODO: resolve dependencies instead of manually adding these initfs packages
for package in init logd nulld ramfs randd zerod
do
REPOS+=("${package}=cookbook/recipes/${package}/source")
done
for name_repo in "${REPOS[@]}"
do
name="$(echo "${name_repo}" | cut -d "=" -f 1)"
repo="$(echo "${name_repo}" | cut -d "=" -f 2-)"
echo -en "\x1B[1m${name}:\x1B[0m "
if [ -e "${repo}/.git" ]
then
remote="$(git -C "${repo}" remote get-url origin)"
website="${remote%.*}"
before="$(git -C "${repo}" log --until="${LAST_RELEASE_TIMESTAMP}" --format="%h" -1)"
after="$(git -C "${repo}" log --since="${LAST_RELEASE_TIMESTAMP}" --format="%h" -1)"
if [ -z "${before}" ]
then
echo "New repository at ${website}"
elif [ -z "${after}" ]
then
echo "No changes"
else
echo "${website}/-/compare/${before}...${after}"
fi
else
echo "Not a git repository"
fi
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

53
scripts/dual-boot.sh Executable file
View File

@ -0,0 +1,53 @@
#!/usr/bin/env bash
set -e
if [ -n "$1" ]
then
DISK="$1"
else
DISK=/dev/disk/by-partlabel/REDOX_INSTALL
fi
if [ ! -b "${DISK}" ]
then
echo "$0: '${DISK}' is not a block device" >&2
exit 1
fi
if [ -z "${ARCH}" ]
then
export ARCH=x86_64
fi
if [ -z "${CONFIG_NAME}" ]
then
export CONFIG_NAME=demo
fi
IMAGE="build/${ARCH}/${CONFIG_NAME}/filesystem.img"
set -x
make "${IMAGE}"
sudo popsicle "${IMAGE}" "${DISK}"
set +x
ESP="$(bootctl --print-esp-path)"
if [ -z "${ESP}" ]
then
echo "$0: no ESP found" >&2
exit 1
fi
BOOTLOADER="cookbook/recipes/core/bootloader/target/${ARCH}-unknown-redox/stage/boot/bootloader.efi"
set -x
sudo mkdir -pv "${ESP}/EFI" "${ESP}/loader/entries"
sudo cp -v "${BOOTLOADER}" "${ESP}/EFI/redox.efi"
sudo tee "${ESP}/loader/entries/redox.conf" <<EOF
title Redox OS
efi /EFI/redox.efi
EOF
set +x
sync
echo "Finished installing Redox OS dual boot"

42
scripts/find-recipe.sh Executable file
View File

@ -0,0 +1,42 @@
#!/usr/bin/env bash
# Ensure arch and config are set as desired, we use these to find the build dir
export ARCH=$(uname -m)
export CONFIG_NAME=desktop
# Make sure to unmount the image first
make unmount &>/dev/null || true
# Mount the image
make mount >/dev/null
# Find all files
find "build/${ARCH}/${CONFIG_NAME}/" -type f | cut -d / -f5- |\
sort |\
uniq |\
while read path
do
# Skip empty paths
if [ -z "${path}" ]
then
continue
fi
# Find all packages providing this file
pkgs="$(
find cookbook/recipes/*"/target/${ARCH}-unknown-redox/stage/${path}" 2>/dev/null |
cut -d/ -f3 |
tr '\n' ' ' |
sort |
uniq
)"
if [ -n "${pkgs}" ]
then
echo "$path: ${pkgs}"
else
echo "$path: no packages, see config/${ARCH}/${CONFIG_NAME}.toml"
fi
done
# Make sure to unmount the image
make unmount &>/dev/null || true

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

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

33
scripts/ventoy.sh Executable file
View File

@ -0,0 +1,33 @@
#!/usr/bin/env bash
set -e
ARCHS=(
i686
x86_64
)
CONFIGS=(
demo
desktop
)
VENTOY="/media/${USER}/Ventoy"
if [ ! -d "${VENTOY}" ]
then
echo "Ventoy not mounted" >&2
exit 1
fi
for ARCH in "${ARCHS[@]}"
do
for CONFIG_NAME in "${CONFIGS[@]}"
do
IMAGE="build/${ARCH}/${CONFIG_NAME}/livedisk.iso"
make ARCH="${ARCH}" CONFIG_NAME="${CONFIG_NAME}" "${IMAGE}"
cp -v "${IMAGE}" "${VENTOY}/redox-${CONFIG_NAME}-${ARCH}.iso"
done
done
sync
echo "Finished copying configs (${CONFIGS[@]}) for archs (${ARCHS[@]})"