Compare commits

..

4 Commits

Author SHA1 Message Date
Ribbon 146c2a2145 Revert a change 2023-11-09 00:26:07 +00:00
Ribbon e8ce4603b1 Try to fix the command execution 2023-11-09 00:17:10 +00:00
Ribbon 1766222299 Use a better command 2023-11-08 01:43:42 +00:00
Ribbon 8251ec1d6c Add an update script 2023-11-08 01:24:33 +00:00
74 changed files with 4769 additions and 1578 deletions

View File

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

1
.gitmodules vendored
View File

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

View File

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

View File

@ -31,13 +31,10 @@ This document tracks the current hardware compatibility of Redox.
## General
This section cover things to consider.
Due to incomplete USB support, desktops are generally not recommended.
- 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)
- USB support is incomplete.
- Wireless networking is not supported.
## Template
@ -155,19 +152,6 @@ Image date - 11-11-2022
- 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**
@ -305,22 +289,6 @@ If you have a customized computer, put it here.
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.

View File

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

View File

@ -21,7 +21,7 @@ You can find the most important pages below:
- [Trying Out Redox](https://doc.redox-os.org/book/ch02-04-trying-out-redox.html)
- [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)
- [Developer FAQ](https://doc.redox-os.org/book/ch09-05-developer-faq.html)
- [Chat/Discussions/Help](https://doc.redox-os.org/book/ch13-01-chat.html)
## Ecosystem

View File

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

View File

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

View File

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

195
config/aarch64/demo.toml Normal file
View File

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

View File

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

195
config/aarch64/desktop.toml Normal file
View File

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

216
config/aarch64/dev.toml Normal file
View File

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

191
config/aarch64/jeremy.toml Normal file
View File

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

View File

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

View File

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

View File

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

186
config/aarch64/server.toml Normal file
View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,51 +0,0 @@
# 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
"""

View File

@ -1,17 +0,0 @@
# 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
"""

View File

@ -1,53 +0,0 @@
# 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"

View File

@ -1,45 +0,0 @@
# 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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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

View File

@ -31,7 +31,6 @@ RUN set -ex; \
x86-64-unknown-redox-gcc \
; \
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/*

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

View File

@ -8,7 +8,6 @@ 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
@ -26,7 +25,7 @@ ci-pkg: prefix FORCE
PACKAGES="$$($(INSTALLER) --list-packages -c config/$(ARCH)/ci.toml)" && \
cd cookbook && \
./fetch.sh "$${PACKAGES}" && \
./repo.sh $(REPO_NONSTOP) "$${PACKAGES}"
./repo.sh "$${PACKAGES}"
# CI toolchain
ci-toolchain: FORCE

View File

@ -5,25 +5,16 @@ HOST_ARCH?=$(shell uname -m)
# Configuration
## 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
## 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))
FILESYSTEM_SIZE?=$(shell grep filesystem_size $(FILESYSTEM_CONFIG) | cut -d' ' -f3)
## 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
@ -33,20 +24,23 @@ 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=umount
export NPROC=sysctl -n hw.ncpu
export REDOX_MAKE=make
VB_AUDIO=coreaudio
VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
HOST_TARGET ?= $(HOST_ARCH)-apple-darwin
ALLOC_FILE=truncate -s "$(FILESYSTEM_SIZE)m"
else ifeq ($(UNAME),FreeBSD)
FUMOUNT=sudo umount
export NPROC=sysctl -n hw.ncpu
export REDOX_MAKE=gmake
VB_AUDIO=pulse # To check, will probably be OSS on most setups
VB_AUDIO=pulse # To check, will probaly be OSS on most setups
VBM=VBoxManage
HOST_TARGET ?= $(HOST_ARCH)-unknown-freebsd
ALLOC_FILE=fallocate --posix --length "$(FILESYSTEM_SIZE)MiB"
else
# Detect which version of the fusermount binary is available.
ifneq (, $(shell which fusermount3))
@ -55,8 +49,12 @@ else
FUMOUNT=fusermount -u
endif
export NPROC=nproc
export REDOX_MAKE=make
VB_AUDIO=pulse
VBM=VBoxManage
HOST_TARGET ?= $(HOST_ARCH)-unknown-linux-gnu
ALLOC_FILE=fallocate --posix --length "$(FILESYSTEM_SIZE)MiB"
endif
ifneq ($(UNAME),Linux)
@ -83,7 +81,6 @@ REPO_TAG=$(BUILD)/repo.tag
endif
FSTOOLS_TAG=build/fstools.tag
export BOARD
## Cross compiler variables
AR=$(TARGET)-gcc-ar

View File

@ -7,18 +7,10 @@ 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")

View File

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

View File

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

View File

@ -1,5 +1,5 @@
QEMU=SDL_VIDEO_X11_DGAMOUSE=0 qemu-system-$(QEMU_ARCH)
QEMUFLAGS=-d guest_errors -name "Redox OS $(ARCH)"
QEMUFLAGS=-d cpu_reset,guest_errors -name "Redox OS $(ARCH)"
ifeq ($(ARCH),i686)
audio?=ac97
@ -7,12 +7,7 @@ ifeq ($(ARCH),i686)
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
QEMUFLAGS+=-smp 4 -m 2048
else ifeq ($(ARCH),x86_64)
QEMU_ARCH=x86_64
QEMU_MACHINE?=q35
@ -25,11 +20,7 @@ else ifeq ($(ARCH),aarch64)
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
QEMU_EFI=/usr/share/AAVMF/AAVMF_CODE.fd
QEMUFLAGS+=-smp 1 -m 2048
ifneq ($(vga),no)
QEMUFLAGS+=-device ramfb
@ -41,10 +32,8 @@ 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
kvm=no
endif
ifeq ($(efi),yes)
@ -121,7 +110,7 @@ ifneq ($(usb),no)
endif
ifeq ($(gdb),yes)
QEMUFLAGS+=-d cpu_reset -s -S
QEMUFLAGS+=-s -S
endif
ifeq ($(UNAME),Linux)
@ -136,15 +125,16 @@ ifeq ($(UNAME),Darwin)
QEMUFLAGS+=-cpu $(QEMU_CPU)
endif
ifeq ($(UNAME),Linux)
$(BUILD)/extra.img:
fallocate --posix --length 1G $@
else
$(BUILD)/extra.img:
truncate -s 1g $@
endif
$(BUILD)/firmware.rom:
ifeq ($(ARCH),aarch64)
wget -O $@ $(QEMU_EFI)
else
cp $(QEMU_EFI) $@
endif
qemu: $(DISK) $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \
@ -188,9 +178,3 @@ qemu_extra: $(FIRMWARE) $(BUILD)/extra.img
qemu_nvme_extra: $(FIRMWARE) $(BUILD)/extra.img
$(QEMU) $(QEMUFLAGS) \
-drive file=$(BUILD)/extra.img,format=raw,if=none,id=drv1 -device nvme,drive=drv1,serial=NVME_EXTRA
#additional steps for $(DISK) are required!!!
qemu_raspi: $(FIRMWARE) $(DISK)
$(QEMU) -M raspi3b -smp 4,cores=1 \
-kernel $(FIRMWARE) \
-serial stdio -display none -sd $(DISK)

View File

@ -16,7 +16,7 @@ else
export PATH="$(PREFIX_PATH):$$PATH" && \
PACKAGES="$$($(INSTALLER) --list-packages -c $(FILESYSTEM_CONFIG))" && \
cd cookbook && \
./repo.sh $(REPO_NONSTOP) "$${PACKAGES}"
./repo.sh "$${PACKAGES}"
mkdir -p $(BUILD)
# make sure fetch.tag is newer than the things repo modifies
touch $<
@ -62,21 +62,3 @@ else
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

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

View File

@ -4,5 +4,3 @@
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

View File

@ -1,7 +1,5 @@
#!/usr/bin/env bash
set -e
##########################################################
# This function is simply a banner to introduce the script
##########################################################
@ -15,10 +13,10 @@ banner()
###################################################################################
# This function takes care of installing a dependency via package manager of choice
# for building Redox on BSDs (macOS, FreeBSD, etc.).
# for building redox on BSDs (MacOS, FreeBSD, etc.).
# @params: $1 package manager
# $2 package name
# $3 binary name (optional)
# $2 package name
# $3 binary name (optional)
###################################################################################
install_bsd_pkg()
{
@ -60,14 +58,14 @@ install_freebsd_pkg()
###############################################################################
# This function checks which of the supported package managers
# is available on the macOS host.
# is available on the OSX 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!"
echo "Detected OSX!"
if [ ! -z "$(which brew)" ]; then
osx_homebrew $@
@ -83,27 +81,24 @@ osx()
###############################################################################
# This function takes care of installing all dependencies using MacPorts
# for building Redox on macOS
# @params: $1 the emulator to install, "virtualbox" or "qemu"
# for building redox on Mac OSX
# @params: $1 the emulator to install, virtualbox or qemu
###############################################################################
osx_macports()
{
echo "MacPorts detected! Now updating..."
echo "Macports detected! Now updating..."
sudo port -v selfupdate
echo "Installing missing packages..."
install_macports_pkg "git"
install_macports_pkg "cmake"
if [ "$1" == "qemu" ]; then
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 "virtualbox"
fi
install_macports_pkg "osxfuse"
install_macports_pkg "podman"
@ -111,8 +106,8 @@ osx_macports()
###############################################################################
# This function takes care of installing all dependencies using Homebrew
# for building Redox on macOS
# @params: $1 the emulator to install, "virtualbox" or "qemu"
# for building redox on Mac OSX
# @params: $1 the emulator to install, virtualbox or qemu
###############################################################################
osx_homebrew()
{
@ -123,15 +118,11 @@ osx_homebrew()
install_brew_pkg "git"
if [ "$1" == "qemu" ]; then
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 "virtualbox"
fi
install_brew_pkg "make"
install_brew_pkg "podman"
@ -139,50 +130,43 @@ osx_homebrew()
###############################################################################
# This function takes care of installing all dependencies using pkg
# for building Redox on FreeBSD
# @params: $1 the emulator to install, "virtualbox" or "qemu"
# for building redox on FreeBSD
# @params: $1 the emulator to install, virtualbox or qemu
###############################################################################
freebsd()
{
set -x
set -xe
echo "FreeBSD detected!"
echo "Installing missing packages..."
install_freebsd_pkg "git"
if [ "$1" == "qemu" ]; then
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 "virtualbox"
fi
install_freebsd_pkg "gmake"
install_freebsd_pkg "podman"
set +x
set +xe
}
###############################################################################
# This function takes care of installing all dependencies for building Redox on
# Arch Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
# 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
@ -192,13 +176,12 @@ archLinux()
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"
# 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()
@ -217,33 +200,20 @@ ubuntu()
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
if [ -z "$(which virtualbox)" ]; then
echo "Installing Virtualbox..."
sudo "$2" install virtualbox
else
echo "Virtualbox already installed!"
fi
fi
}
###############################################################################
# This function takes care of installing all dependencies for building Redox on
# Fedora Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
# This function takes care of installing all dependencies for building redox on
# fedora linux
# @params: $1 the emulator to install, virtualbox or qemu
###############################################################################
fedora()
{
@ -252,7 +222,6 @@ fedora()
echo "Installing git..."
sudo dnf install git-all
fi
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Installing QEMU..."
@ -260,19 +229,14 @@ fedora()
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
if [ -z "$(which virtualbox)" ]; then
echo "Installing virtualbox..."
sudo dnf install virtualbox
else
echo "Virtualbox already installed!"
fi
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
@ -284,100 +248,41 @@ fedora()
}
###############################################################################
# This function takes care of installing all dependencies for building Redox on
# *SUSE Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
# 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)
echo "Installing git..."
zypper install git
fi
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Will install QEMU..."
packages+=(qemu-x86 qemu-kvm)
echo "Installing QEMU..."
sudo zypper install 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"
if [ -z "$(which virtualbox)" ]; then
echo "Please install Virtualbox and re-run this script,"
echo "or run with -e qemu"
exit
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
echo "Virtualbox already installed!"
fi
done
zypper install ${packages[@]}
fi
echo "Installing necessary build tools..."
sudo zypper install make fuse-devel podman
}
##############################################################################
# This function takes care of installing all dependencies for building Redox on
# Gentoo Linux
# @params: $1 the emulator to install, "virtualbox" or "qemu"
# This function takes care of installing all dependencies for building redox on
# gentoo linux
# @params: $1 the emulator to install, virtualbox or qemu
##############################################################################
gentoo()
{
@ -390,47 +295,32 @@ gentoo()
echo "Installing fuse..."
sudo emerge sys-fs/fuse
fi
if [ "$1" == "qemu" ]; then
if [ "$2" == "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"
# This function takes care of installing all dependencies for building redox on
# SolusOS
# @params: $1 the emulator to install, virtualbox or qemu
##############################################################################
solus()
{
echo "Detected Solus"
echo "Detected SolusOS"
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
@ -438,17 +328,14 @@ solus()
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
if [ -z "$(which virtualbox)" ]; then
echo "Please install Virtualbox and re-run this script,"
echo "or run with -e qemu"
exit
else
echo "Virtualbox already installed!"
fi
fi
echo "Installing necessary build tools..."
@ -456,7 +343,6 @@ solus()
sudo eopkg it fuse-devel git make fuse2-devel rsync
if [ -z "$(which podman)" ]; then
echo "Please install Podman"
exit 1
fi
}
@ -553,11 +439,14 @@ boot()
MAKE="make"
if [[ "$(uname)" == "FreeBSD" ]]; then
MAKE="gmake"
echo "kldload fuse.ko # This loads the kernel module for FUSE"
echo "kldload fuse.ko # This loads the kernel module for fuse"
fi
echo "$MAKE all"
echo "$MAKE virtualbox or qemu"
echo
echo "You can also edit mk/config.mk and change PODMAN_BUILD to 1 so"
echo "you don't need to specify it on the command line."
echo
echo " Good luck!"
exit
@ -588,7 +477,7 @@ do
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;;
\?) echo "I don't know what to do with that option, try -h for help"; exit;;
esac
done
@ -605,7 +494,7 @@ if [ "Darwin" == "$(uname -s)" ]; then
else
# Here we will use package managers to determine which operating system the user is using.
# SUSE and derivatives
# Suse and derivatives
if hash 2>/dev/null zypper; then
suse "$emulator"
# Debian or any derivative of it
@ -617,10 +506,10 @@ else
# Gentoo
elif hash 2>/dev/null emerge; then
gentoo "$emulator"
# Solus
# SolusOS
elif hash 2>/dev/null eopkg; then
solus "$emulator"
# Arch Linux
# Arch linux
elif hash 2>/dev/null pacman; then
archLinux "$emulator"
# FreeBSD
@ -628,7 +517,7 @@ else
freebsd "$emulator"
# Unsupported platform
else
printf "\e[31;1mFatal error: \e[0;31mUnsupported platform, please open an issue\e[0m\n"
printf "\e[31;1mFatal error: \e[0;31mUnsupported platform, please open an issue\[0m"
fi
fi

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

2
relibc

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

View File

@ -1,75 +0,0 @@
#!/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

View File

@ -1,20 +0,0 @@
#!/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

View File

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

View File

@ -38,7 +38,7 @@ then
exit 1
fi
BOOTLOADER="cookbook/recipes/core/bootloader/target/${ARCH}-unknown-redox/stage/boot/bootloader.efi"
BOOTLOADER="cookbook/recipes/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"

View File

@ -1,23 +0,0 @@
#!/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

View File

@ -1,27 +0,0 @@
#!/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

18
scripts/rebuild-recipe.sh Executable file
View File

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

View File

@ -1,26 +0,0 @@
#!/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

16
scripts/update.sh Normal file
View File

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