...
 
Commits (456)
/build/
/prefix/
.config
image: "ubuntu:20.04"
variables:
GIT_STRATEGY: "pull"
GIT_SUBMODULE_STRATEGY: "recursive"
......@@ -5,6 +7,7 @@ variables:
before_script:
- |
export DEBIAN_FRONTEND=noninteractive
apt-get update -qq &&
apt-get install -qq \
bison \
......@@ -18,6 +21,7 @@ before_script:
gnupg \
libfuse-dev \
nasm \
parted \
pkg-config \
software-properties-common \
syslinux \
......@@ -30,13 +34,9 @@ img:
script:
- |
source "$HOME/.cargo/env" &&
rustup update &&
rustup component add rust-src &&
cargo install cargo-config cargo-xbuild xargo &&
pushd bootloader-efi &&
rustup update &&
rustup component add rust-src &&
popd &&
cargo install --version 0.1.1 cargo-config &&
cargo install cargo-xbuild &&
cargo install --version 0.3.20 xargo &&
make ci-img IMG_TAG=$CI_COMMIT_REF_NAME
artifacts:
paths:
......
......@@ -25,7 +25,7 @@
[submodule "rust"]
path = rust
url = https://gitlab.redox-os.org/redox-os/rust.git
branch = redox
branch = redox-2020-07-27
[submodule "redoxfs"]
path = redoxfs
url = https://gitlab.redox-os.org/redox-os/redoxfs.git
......@@ -37,3 +37,4 @@
[submodule "bootloader-coreboot"]
path = bootloader-coreboot
url = https://gitlab.redox-os.org/redox-os/bootloader-coreboot.git
branch = master
# Configuration and variables
include mk/config.mk
# Dependencies
include mk/depends.mk
all: build/harddrive.bin
coreboot: build/coreboot.elf
......@@ -38,6 +41,7 @@ update:
cargo update --manifest-path redoxfs/Cargo.toml
fetch:
cargo build --manifest-path cookbook/Cargo.toml --release
cd cookbook && ./fetch.sh \
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../initfs.toml)" \
"$$(cargo run --manifest-path ../installer/Cargo.toml -- --list-packages -c ../filesystem.toml)"
......@@ -63,14 +67,12 @@ include mk/virtualbox.mk
# CI image target
ci-img: FORCE
$(MAKE) INSTALLER_FLAGS= \
build/coreboot.elf.gz \
build/harddrive.bin.gz \
build/livedisk.iso.gz \
build/harddrive-efi.bin.gz \
build/livedisk-efi.iso.gz
rm -rf build/img
mkdir -p build/img
cp "build/coreboot.elf.gz" "build/img/redox_$(IMG_TAG)_coreboot.elf.gz"
cp "build/harddrive.bin.gz" "build/img/redox_$(IMG_TAG)_harddrive.bin.gz"
cp "build/livedisk.iso.gz" "build/img/redox_$(IMG_TAG)_livedisk.iso.gz"
cp "build/harddrive-efi.bin.gz" "build/img/redox_$(IMG_TAG)_harddrive-efi.bin.gz"
......@@ -79,6 +81,7 @@ ci-img: FORCE
# CI packaging target
ci-pkg: prefix FORCE
cargo build --manifest-path cookbook/Cargo.toml --release
export PATH="$(PREFIX_PATH):$$PATH" && \
PACKAGES="$$(cargo run --manifest-path installer/Cargo.toml -- --list-packages -c ci.toml)" && \
cd cookbook && \
......@@ -89,17 +92,22 @@ ci-pkg: prefix FORCE
ci-toolchain: FORCE
$(MAKE) PREFIX_BINARY=0 \
"prefix/$(TARGET)/gcc-install.tar.gz" \
"prefix/$(TARGET)/relibc-install.tar.gz"
rm -rf build/toolchain
"prefix/$(TARGET)/relibc-install.tar.gz" \
"prefix/$(TARGET)/rust-install.tar.gz"
rm -rf "build/toolchain/$(TARGET)"
mkdir -p "build/toolchain/$(TARGET)"
cp "prefix/$(TARGET)/gcc-install.tar.gz" "build/toolchain/$(TARGET)/gcc-install.tar.gz"
cp "prefix/$(TARGET)/relibc-install.tar.gz" "build/toolchain/$(TARGET)/relibc-install.tar.gz"
cp "prefix/$(TARGET)/rust-install.tar.gz" "build/toolchain/$(TARGET)/rust-install.tar.gz"
cd "build/toolchain/$(TARGET)" && sha256sum -b * > SHA256SUM
env: prefix FORCE
export PATH="$(PREFIX_PATH):$$PATH" && \
bash
gdb: FORCE
gdb build/kernel.sym --eval-command="target remote localhost:1234"
# An empty target
FORCE:
......
......@@ -138,8 +138,8 @@ $ ./bootstrap.sh -d
$ curl https://sh.rustup.rs -sSf | sh
$ source $HOME/.cargo/env
# Install the sysroot manager Xargo
$ cargo install xargo
# Install the sysroot manager Xargo and cargo-config
$ cargo install xargo cargo-config
# For successive builds start here. If this is your first build, just continue
......
ata0-master: type=disk, path="build/harddrive.bin", mode=flat
ata0-master: type=disk, path="build/livedisk.bin", mode=flat
boot: disk
com1: enabled=1, mode=file, dev=build/serial.log
cpu: model=corei7_haswell_4770
#e1000: enabled=1, mac=52:54:00:12:34:56 ethmod=vnet
megs: 1024
magic_break: enabled=1
......
Subproject commit ad8f6a97e9205552e1414bb481b3d13ec9ae5fae
Subproject commit 1d201c4435ebad73e0248d02c8b254783b75eca5
Subproject commit f88d1c95e27c4ae6ce5bcc6ffeaf561811c88d47
Subproject commit 6c31909f75f3d707efa606e546113ee508be0748
Subproject commit 8672aa616d2c1fb096ba02f1e0543ca39665a972
Subproject commit e147b413eeb9eb7d01c85cfe1b6b6eea39c47a57
#! /bin/bash
#!/usr/bin/env bash
##########################################################
# This function is simply a banner to introduce the script
......@@ -12,12 +12,12 @@ banner()
###################################################################################
# This function takes care of installing a dependency via package manager of choice
# for building redox on MacOS.
# for building redox on BSDs (MacOS, FreeBSD, etc.).
# @params: $1 package manager
# $2 package name
# $3 binary name (optional)
###################################################################################
install_macos_pkg()
install_bsd_pkg()
{
PKG_MANAGER=$1
PKG_NAME=$2
......@@ -37,17 +37,22 @@ install_macos_pkg()
install_macports_pkg()
{
install_macos_pkg "sudo port" "$1" "$2"
install_bsd_pkg "sudo port" "$1" "$2"
}
install_brew_pkg()
{
install_macos_pkg "brew" $@
install_bsd_pkg "brew" $@
}
install_brew_cask_pkg()
{
install_macos_pkg "brew cask" $@
install_bsd_pkg "brew cask" $@
}
install_freebsd_pkg()
{
install_bsd_pkg "sudo pkg" $@
}
###############################################################################
......@@ -123,15 +128,55 @@ osx_homebrew()
install_brew_pkg "virtualbox"
fi
install_brew_pkg "coreutils"
install_brew_pkg "findutils"
install_brew_pkg "gcc49" "gcc-4.9"
install_brew_pkg "automake"
install_brew_pkg "bison"
install_brew_pkg "gettext"
install_brew_pkg "libtool"
install_brew_pkg "make"
install_brew_pkg "nasm"
install_brew_pkg "gcc@7" "gcc-7"
install_brew_pkg "pkg-config"
install_brew_pkg "cmake"
install_brew_cask_pkg "osxfuse"
install_brew_pkg "Caskroom/cask/osxfuse"
install_brew_pkg "redox-os/gcc_cross_compilers/x86_64-elf-gcc" "x86_64-elf-gcc"
}
###############################################################################
# This function takes care of installing all dependencies using pkg
# for building redox on FreeBSD
# @params: $1 the emulator to install, virtualbox or qemu
###############################################################################
freebsd()
{
set -xe
echo "FreeBSD detected!"
echo "Installing missing packages..."
install_brew_pkg "redox-os/gcc_cross_compilers/x86_64-elf-gcc"
install_freebsd_pkg "git"
if [ "$1" == "qemu" ]; then
install_freebsd_pkg "qemu" "qemu-system-x86_64"
else
install_freebsd_pkg "virtualbox"
fi
install_freebsd_pkg "coreutils"
install_freebsd_pkg "findutils"
install_freebsd_pkg "gcc"
install_freebsd_pkg "nasm"
install_freebsd_pkg "pkgconf"
install_freebsd_pkg "fusefs-libs"
install_freebsd_pkg "cmake"
install_freebsd_pkg "gmake"
install_freebsd_pkg "wget"
install_freebsd_pkg "texinfo"
install_freebsd_pkg "python"
install_freebsd_pkg "automake"
install_freebsd_pkg "gettext"
install_freebsd_pkg "bison"
install_freebsd_pkg "gperf"
set +xe
}
###############################################################################
......@@ -142,15 +187,19 @@ osx_homebrew()
archLinux()
{
echo "Detected Arch Linux"
packages="cmake fuse git gperf perl-html-parser nasm wget"
packages="cmake fuse git gperf perl-html-parser nasm wget texinfo bison flex po4a"
if [ "$1" == "qemu" ]; then
packages="$packages qemu"
elif [ "$1" == "virtualbox" ]; then
packages="$packages virtualbox"
fi
echo "Updating system..."
sudo pacman -Syu
# Scripts should not cause a system update in order to just install a couple
# of packages. If pacman -S --needed is going to fail, let it fail and the
# user will figure out the issues (without updating if required) and rerun
# the script.
#echo "Updating system..."
#sudo pacman -Syu
echo "Installing packages $packages..."
sudo pacman -S --needed $packages
......@@ -168,7 +217,30 @@ ubuntu()
echo "Updating system..."
sudo "$2" update
echo "Installing required packages..."
sudo "$2" install build-essential libc6-dev-i386 nasm curl file git libfuse-dev fuse pkg-config cmake autopoint autoconf libtool m4 syslinux-utils genisoimage flex bison gperf libpng-dev libhtml-parser-perl texinfo
sudo "$2" install \
autoconf \
autopoint \
bison \
build-essential \
cmake \
curl \
file \
flex \
fuse \
genisoimage \
git \
gperf \
libc6-dev-i386 \
libfuse-dev \
libhtml-parser-perl \
libpng-dev \
libtool \
m4 \
nasm \
pkg-config \
po4a \
syslinux-utils \
texinfo
if [ "$1" == "qemu" ]; then
if [ -z "$(which qemu-system-x86_64)" ]; then
echo "Installing QEMU..."
......@@ -214,7 +286,7 @@ fedora()
fi
fi
# Use rpm -q <package> to check if it's already installed
PKGS=$(for pkg in gcc gcc-c++ glibc-devel.i686 nasm make fuse-devel cmake texinfo; do rpm -q $pkg > /dev/null; [ $? -ne 0 ] && echo $pkg; done)
PKGS=$(for pkg in gcc gcc-c++ glibc-devel.i686 nasm make fuse-devel cmake texinfo gettext-devel bison flex perl-HTML-Parser po4a; 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
......@@ -345,6 +417,18 @@ usage()
exit
}
#############################################################
# Looks for and installs a cargo-managed binary or subcommand
#############################################################
cargoInstall() {
if [[ "`cargo install --list`" != *"$1 v$2"* ]]; then
cargo install --force --version "$2" "$1"
else
echo "You have $1 version $2 installed already!"
fi
}
####################################################################################
# This function 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
......@@ -365,8 +449,6 @@ rustInstall() {
echo "Please manually uninstall multirust and any other versions of rust, then re-run bootstrap."
exit
fi
else
echo "Old multirust not installed, you are good to go."
fi
# If rustup is not installed we should offer to install it for them
if [ -z "$(which rustup)" ]; then
......@@ -383,7 +465,6 @@ rustInstall() {
echo "export PATH=\"\$HOME/.cargo/bin:\$PATH\"" >> ~/.bashrc
# source the variables so that we can execute rustup commands in the current shell
source ~/.cargo/env
rustup default nightly
else
echo "Rustup will not be installed!"
fi
......@@ -395,22 +476,8 @@ rustInstall() {
echo "or install rustc nightly manually (not recommended) via:"
echo "\#curl -sSf https://static.rust-lang.org/rustup.sh | sh -s -- --channel=nightly"
exit
fi
# If the system has rustup installed then update rustc to the latest nightly
if hash 2>/dev/null rustup; then
rustup update nightly
rustup default nightly
fi
# Check to make sure that the default rustc is the nightly
if echo "$(rustc --version)" | grep -viq "nightly" ;then
echo "It appears that you have rust installed, but it"
echo "is not the nightly version, please either install"
echo "the nightly manually (not recommended) or run this"
echo "script again, accepting the rustup install"
echo
else
echo "Your rust install looks good!"
echo
fi
}
......@@ -454,12 +521,6 @@ boot()
{
echo "Cloning gitlab repo..."
git clone https://gitlab.redox-os.org/redox-os/redox.git --origin upstream --recursive
rustInstall
if [[ "`cargo install --list`" != *"xargo"* ]]; then
cargo install xargo
else
echo "You have xargo installed already!"
fi
echo "Cleaning up..."
rm bootstrap.sh
echo
......@@ -469,8 +530,13 @@ boot()
statusCheck
echo "Run the following commands to build redox:"
echo "cd redox"
echo "make all"
echo "make virtualbox or qemu"
MAKE="make"
if [[ "$(uname)" == "FreeBSD" ]]; then
MAKE="gmake"
echo "kldload fuse.ko # This loads the kernel module for fuse"
fi
echo "$MAKE all"
echo "$MAKE virtualbox or qemu"
echo
echo " Good luck!"
......@@ -492,27 +558,40 @@ fi
emulator="qemu"
defpackman="apt-get"
dependenciesonly=false
while getopts ":e:p:d" opt
update=false
while getopts ":e:p:udhs" opt
do
case "$opt" in
e) emulator="$OPTARG";;
p) defpackman="$OPTARG";;
d) dependenciesonly=true;;
u) update=true;;
h) usage;;
s) statusCheck && exit;;
\?) echo "I don't know what to do with that option, try -h for help"; exit;;
esac
done
banner
rustInstall
cargoInstall cargo-config 0.1.1
cargoInstall xargo 0.3.20
if [ "$update" == "true" ]; then
git pull upstream master
git submodule update --recursive --init
rustup update nightly
exit
fi
if [ "Darwin" == "$(uname -s)" ]; then
osx "$emulator"
else
# Here we will use package managers to determine which operating system the user is using.
# Arch linux
if hash 2>/dev/null pacman; then
archLinux "$emulator"
# Suse and derivatives
elif hash 2>/dev/null zypper; then
if hash 2>/dev/null zypper; then
suse "$emulator"
# Debian or any derivative of it
elif hash 2>/dev/null apt-get; then
......@@ -526,11 +605,20 @@ else
# SolusOS
elif hash 2>/dev/null eopkg; then
solus "$emulator"
# Arch linux
elif hash 2>/dev/null pacman; then
archLinux "$emulator"
# FreeBSD
elif hash 2>/dev/null pkg; then
freebsd "$emulator"
# Unsupported platform
else
printf "\e[31;1mFatal error: \e[0;31mUnsupported platform, please open an issue\[0m"
fi
fi
if [ "$dependenciesonly" = false ]; then
boot
fi
echo "Redox bootstrap complete!"
......@@ -8,16 +8,17 @@ prompt = false
# Package settings
[packages]
acid = {}
atk = {}
audiod = {}
autoconf = {}
automake = {}
bash = {}
#bash = {} # setrlimit
binutils = {}
bootloader = {}
ca-certificates = {}
cairo = {}
cairodemo = {}
cargo = {}
#cargo = {} # curl-config not found
cleye = {}
cmatrix = {}
contain = {}
......@@ -34,18 +35,22 @@ eduke32 = {}
exampled = {}
expat = {}
extrautils = {}
#fd = {} # ctrlc-3.1.1
#fd = {} # ctrlc-3.1.1
ffmpeg = {}
findutils = {}
fontconfig = {}
#freeciv = {}
freedoom = {}
#freeglut = {}
freetype = {}
#friar = {} # mio patch
game-2048 = {}
fribidi = {}
#game-2048 = {} # rustc-serialize
games = {}
#gawk = {} # langinfo.h
gcc = {}
gdbserver = {}
#gdk-pixbuf = {} # shared-mime-info
gears = {}
generaluser-gs = {}
gettext = {}
......@@ -57,9 +62,9 @@ glutin = {}
gnu-binutils = {}
gnu-grep = {}
gnu-make = {}
gstreamer = {}
#gstreamer = {} # conflict with thread local errno
harfbuzz = {}
hematite = {}
#hematite = {} # needs crate patches for redox-unix
init = {}
installer = {}
ion = {}
......@@ -77,24 +82,27 @@ liborbital = {}
libpng = {}
libsodium = {}
libvorbis = {}
libxml2 = {}
llvm = {}
logd = {}
#lua = {} # tmpnam
#mdp = {} # ncursesw
mesa = {}
mesa_glu = {}
mgba = {}
#mgba = {} # no longer builds binary
#miniserve = {} # actix
nasm = {}
ncdu = {}
#ncdu = {} # fails to link with ncurses
ncurses = {}
#ncursesw = {} # mkstemp configure hang
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
#neverball = {} # error finding SDL includes
#newlib = {} # obsolete
#newlibtest = {} # obsolete
nghttp2 = {}
nulld = {}
openjazz = {}
openssl = {}
......@@ -102,6 +110,7 @@ openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
openttd-opensfx = {}
orbclient = {}
orbdata = {}
orbital = {}
orbterm = {}
......@@ -110,24 +119,32 @@ orbutils-background = {}
orbutils-launcher = {}
orbutils-orblogin = {}
osdemo = {}
pastel = {}
pango = {}
#pastel = {} # needs crate patches for redox-unix
patch = {}
#pathfinder = {} # servo-fontconfig
#pciids = {}
pcre = {}
periodictable = {}
#perl = {} # ctermid, tempnam, ttyname
pixelcannon = {}
pixman = {}
pkg-config = {}
pkgutils = {}
powerline = {}
#powerline = {} # dirs
prboom = {}
ptyd = {}
#python = {} # getaddrinfo
#qemu = {}
randd = {}
ramfs = {}
readline = {}
redoxerd = {}
redoxfs = {}
#redox-fatfs = {}
#redox-ssh = {}
relibc = {}
#relibc-tests = {}
ripgrep = {}
rodioplay = {}
rs-nes = {}
......@@ -148,24 +165,27 @@ sdl_gfx = {}
sdl_image = {}
sdl_mixer = {}
sdl-player = {}
sdl_ttf = {}
#sdl_ttf = {} # configure patch needs to be updated
sed = {}
#servo = {} # some more crates to port
#shared-mime-info = {} # intltool-update out of date
shellstorm = {}
smith = {}
sodium = {}
sopwith = {}
#ssh = {}
syobonaction = {}
strace = {}
#syobonaction = {} # sdl_ttf errors
terminfo = {}
termplay = {}
#termplay = {} # backtrace cannot find link.h
timidity = {}
ttf-hack = {}
userutils = {}
uutils = {}
vim = {}
vice = {}
#vim = {} # stack_t not matching
vttest = {}
webrender = {}
#webrender = {} # unwind
winit = {}
xz = {}
zerod = {}
......
......@@ -90,7 +90,7 @@ logd = {}
#netutils = {}
#newlib = {}
#newlibtest = {}
nulld = {}
#nulld = {}
#openjazz = {}
#openssl = {}
#openttd = {}
......@@ -104,6 +104,7 @@ nulld = {}
#osdemo = {}
#pastel = {}
#patch = {}
#pciids = {}
#pcre = {}
#periodictable = {}
#perl = {}
......@@ -115,7 +116,7 @@ nulld = {}
ptyd = {}
#python = {}
#qemu = {}
randd = {}
#randd = {}
#readline = {} # ncurses
#redoxfs = {}
#redox-ssh = {}
......@@ -156,7 +157,7 @@ randd = {}
#webrender = {}
#winit = {}
#xz = {}
zerod = {}
#zerod = {}
#zlib = {}
# User settings
......@@ -174,9 +175,6 @@ password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
nulld
zerod
randd
ipcd
logd
ptyd
......
......@@ -90,7 +90,7 @@ ipcd = {}
#netutils = {}
#newlib = {}
#newlibtest = {}
nulld = {}
#nulld = {}
#openjazz = {}
#openssl = {}
#openttd = {}
......@@ -107,6 +107,7 @@ orbutils-orblogin = {}
#osdemo = {}
#pastel = {}
#patch = {}
#pciids = {}
#pcre = {}
#periodictable = {}
#perl = {}
......@@ -118,7 +119,7 @@ orbutils-orblogin = {}
ptyd = {}
#python = {}
#qemu = {}
randd = {}
#randd = {}
#readline = {} # ncurses
#redoxfs = {}
#redox-ssh = {}
......@@ -159,7 +160,7 @@ uutils = {}
#webrender = {}
#winit = {}
#xz = {}
zerod = {}
#zerod = {}
#zlib = {}
# User settings
......@@ -177,13 +178,10 @@ password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
nulld
zerod
randd
ipcd
#logd
ptyd
#pcid /etc/pcid/filesystem.toml
#pcid /etc/pcid.d/
"""
# [[files]]
......@@ -256,24 +254,6 @@ data = """
redox
"""
[[files]]
path = "/etc/issue"
data = """
########## Redox OS ##########
# Login with the following: #
# `user` #
# `root`:`password` #
##############################
"""
[[files]]
path = "/etc/motd"
data = """
Welcome to Redox OS!
"""
[[files]]
path = "/usr/bin"
data = "/bin"
......
......@@ -23,7 +23,7 @@ contain = {}
coreutils = {}
#cpal = {}
#curl = {}
#dash = {}
dash = {}
#diffutils = {}
#dosbox = {}
drivers = {}
......@@ -45,6 +45,7 @@ findutils = {}
#games = {}
#gawk = {}
#gcc = {}
gdbserver = {}
#gears = {}
#generaluser-gs = {}
#gettext = {}
......@@ -88,15 +89,17 @@ netdb = {}
netstack = {}
netsurf = {}
netutils = {}
#neverball = {}
#newlib = {}
#newlibtest = {}
nulld = {}
#nulld = {}
#openjazz = {}
#openssl = {}
#openttd = {}
#openttd-opengfx = {}
#openttd-openmsx = {}
#openttd-opensfx = {}
#orbclient = {}
orbdata = {}
orbital = {}
orbterm = {}
......@@ -104,6 +107,7 @@ orbutils = {}
#osdemo = {}
#pastel = {}
#patch = {}
#pciids = {}
#pcre = {}
#periodictable = {}
#perl = {}
......@@ -115,11 +119,13 @@ pkgutils = {}
ptyd = {}
#python = {}
#qemu = {}
randd = {}
#randd = {}
#readline = {} # ncurses
redoxfs = {}
#redox-fatfs = {}
#redox-ssh = {}
#relibc = {}
#relibc-tests = {}
#ripgrep = {}
#rodioplay = {}
#rs-nes = {}
......@@ -132,6 +138,7 @@ redoxfs = {}
#scummvm = {}
#sdl = {}
#sdl2 = {}
#sdl2_gears = {}
#sdl_gfx = {}
#sdl_image = {}
#sdl_mixer = {}
......@@ -144,6 +151,7 @@ smith = {}
#sodium = {}
#sopwith = {}
#ssh = {}
strace = {}
#syobonaction = {}
#terminfo = {}
#termplay = {}
......@@ -156,7 +164,7 @@ uutils = {}
#webrender = {}
#winit = {}
#xz = {}
zerod = {}
#zerod = {}
#zlib = {}
# User settings
......@@ -174,13 +182,10 @@ password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
nulld
zerod
randd
ipcd
logd
ptyd
pcid /etc/pcid/filesystem.toml
pcid /etc/pcid.d/
"""
[[files]]
......@@ -253,24 +258,6 @@ data = """
redox
"""
[[files]]
path = "/etc/issue"
data = """
########## Redox OS ##########
# Login with the following: #
# `user` #
# `root`:`password` #
##############################
"""
[[files]]
path = "/etc/motd"
data = """
Welcome to Redox OS!
"""
[[files]]
path = "/usr/bin"
data = "/bin"
......@@ -302,3 +289,23 @@ 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
# This is a maximum configuration file
# General settings
[general]
# Do not prompt if settings are not defined
prompt = false
# Package settings
[packages]
acid = {}
atk = {}
audiod = {}
autoconf = {}
automake = {}
#bash = {}
binutils = {}
ca-certificates = {}
cairo = {}
cairodemo = {}
#cargo = {}
cleye = {}
cmatrix = {}
contain = {}
coreutils = {}
cpal = {}
curl = {}
dash = {}
diffutils = {}
dosbox = {}
drivers = {}
#drivers-041 = {}
#duktape = {}
eduke32 = {}
exampled = {}
expat = {}
extrautils = {}
#fd = {}
ffmpeg = {}
findutils = {}
fontconfig = {}
#freeciv = {}
freedoom = {}
#freeglut = {}
freetype = {}
#friar = {} # mio patch
fribidi = {}
#game-2048 = {}
games = {}
#gawk = {}
gcc = {}
gdbserver = {}
#gdk-pixbuf = {}
gears = {}
generaluser-gs = {}
gettext = {}
gigalomania = {}
git = {}
glib = {}
glium = {}
glutin = {}
gnu-binutils = {}
gnu-grep = {}
gnu-make = {}
#gstreamer = {}
harfbuzz = {}
#hematite = {}
#init = {}
installer = {}
ion = {}
ipcd = {}
jansson = {}
keyboard-sfx = {}
lci = {}
libc-bench = {}
libffi = {}
libiconv = {}
libjpeg = {}
libogg = {}
liborbital = {}
libpng = {}
libsodium = {}
libvorbis = {}
libxml2 = {}
llvm = {}
logd = {}
#lua = {}
#mdp = {}
mesa = {}
mesa_glu = {}
#mgba = {}
#miniserve = {}
nasm = {}
#ncdu = {}
ncurses = {}
#ncursesw = {}
netdb = {}
netstack = {}
netsurf = {}
netutils = {}
#neverball = {}
#newlib = {}
#newlibtest = {}
nghttp2 = {}
#nulld = {}
openjazz = {}
openssl = {}
openttd = {}
openttd-opengfx = {}
openttd-openmsx = {}
openttd-opensfx = {}
orbclient = {}
orbdata = {}
orbital = {}
orbterm = {}
orbutils = {}
osdemo = {}
pango = {}
#pastel = {}
patch = {}
#pathfinder = {}
#pciids = {}
pcre = {}
periodictable = {}
#perl = {}
pixelcannon = {}
pixman = {}
pkg-config = {}
pkgutils = {}
#powerline = {}
prboom = {}
ptyd = {}
#python = {}
#qemu = {}
randd = {}
readline = {} # ncurses
redoxfs = {}
#redox-fatfs = {}
#redox-ssh = {}
relibc = {}
#relibc-tests = {}
ripgrep = {}
rodioplay = {}
rs-nes = {}
#rust = {}
rust64 = {}
rust-cairo = {}
rust-cairo-demo = {}
rustual-boy = {}
schismtracker = {}
scummvm = {}
sdl = {}
sdl2 = {}
sdl2_gears = {}
sdl2_image = {}
sdl2_mixer = {}
sdl2_ttf = {}
sdl_gfx = {}
sdl_image = {}
sdl_mixer = {}
sdl-player = {}
#sdl_ttf = {}
sed = {}
#servo = {}
#shared-mime-info = {}
shellstorm = {}
smith = {}
sodium = {}
sopwith = {}
#ssh = {}
strace = {}
#syobonaction = {}
terminfo = {}
#termplay = {}
timidity = {}
ttf-hack = {}
userutils = {}
uutils = {}
vice = {}
#vim = {}
vttest = {}
#webrender = {}
winit = {}
xz = {}
#zerod = {}
zlib = {}
# User settings
[users.root]
password = "password"
uid = 0
gid = 0
name = "root"
home = "/root"
[users.user]
# Password is unset
password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
ipcd
logd
ptyd
pcid /etc/pcid.d/
"""
[[files]]
path = "/etc/init.d/10_net"
data = """
smolnetd
dnsd
dhcpd -b
"""
[[files]]
path = "/etc/init.d/20_orbital"
data = """
audiod
orbital display:3/activate orblogin launcher
"""
[[files]]
path = "/etc/init.d/30_console"
data = """
getty display:2
getty debug: -J
"""
[[files]]
path = "/etc/net/dns"
data = """
208.67.222.222
"""
[[files]]
path = "/etc/net/ip"
data = """
10.0.2.15
"""
[[files]]
path = "/etc/net/ip_router"
data = """
10.0.2.2
"""
[[files]]
path = "/etc/net/ip_subnet"
data = """
255.255.255.0
"""
[[files]]
path = "/etc/net/mac"
data = """
54-52-00-ab-cd-ef
"""
[[files]]
path = "/etc/pkg.d/50_redox"
data = "https://static.redox-os.org/pkg"
[[files]]
path = "/etc/group"
data = """
root;0;root
user;1000;user
sudo;1;user
"""
[[files]]
path = "/etc/hostname"
data = """
redox
"""
[[files]]
path = "/usr/bin"
data = "/bin"
symlink = true
[[files]]
path = "/usr/games"
data = "/games"
symlink = true
[[files]]
path = "/usr/include"
data = "/include"
symlink = true
[[files]]
path = "/usr/lib"
data = "/lib"
symlink = true
[[files]]
path = "/usr/share"
data = "/share"
symlink = true
[[files]]
path = "/tmp"
data = ""
directory= true
# 0o1777
mode = 1023
[[files]]
path = "/dev/null"
data = "null:"
symlink = true
[[files]]
path = "/dev/random"
data = "rand:"
symlink = true
[[files]]
path = "/dev/urandom"
data = "rand:"
symlink = true
[[files]]
path = "/dev/zero"
data = "zero:"
symlink = true
......@@ -90,7 +90,7 @@ logd = {}
#netutils = {}
#newlib = {}
#newlibtest = {}
nulld = {}
#nulld = {}
#openjazz = {}
#openssl = {}
#openttd = {}
......@@ -104,6 +104,7 @@ nulld = {}
#osdemo = {}
#pastel = {}
#patch = {}
#pciids = {}
#pcre = {}
#periodictable = {}
#perl = {}
......@@ -115,7 +116,7 @@ nulld = {}
ptyd = {}
#python = {}
#qemu = {}
randd = {}
#randd = {}
#readline = {} # ncurses
#redoxfs = {}
#redox-ssh = {}
......@@ -156,7 +157,7 @@ randd = {}
#webrender = {}
#winit = {}
#xz = {}
zerod = {}
#zerod = {}
#zlib = {}
# User settings
......@@ -174,9 +175,6 @@ password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
nulld
zerod
randd
ipcd
logd
ptyd
......
......@@ -23,7 +23,7 @@ contain = {}
coreutils = {}
#cpal = {}
#curl = {}
#dash = {}
dash = {}
#diffutils = {}
#dosbox = {}
drivers = {}
......@@ -90,7 +90,7 @@ netstack = {}
netutils = {}
#newlib = {}
#newlibtest = {}
nulld = {}
#nulld = {}
#openjazz = {}
#openssl = {}
#openttd = {}
......@@ -104,6 +104,7 @@ nulld = {}
#osdemo = {}
#pastel = {}
#patch = {}
#pciids = {}
#pcre = {}
#periodictable = {}
#perl = {}
......@@ -115,7 +116,7 @@ pkgutils = {}
ptyd = {}
#python = {}
#qemu = {}
randd = {}
#randd = {}
#readline = {} # ncurses
redoxfs = {}
#redox-ssh = {}
......@@ -156,7 +157,7 @@ uutils = {}
#webrender = {}
#winit = {}
#xz = {}
zerod = {}
#zerod = {}
#zlib = {}
# User settings
......@@ -174,13 +175,10 @@ password = ""
[[files]]
path = "/etc/init.d/00_base"
data = """
nulld
zerod
randd
ipcd
logd
ptyd
pcid /etc/pcid/filesystem.toml
pcid /etc/pcid.d/
"""
[[files]]
......@@ -246,24 +244,6 @@ data = """
redox
"""
[[files]]
path = "/etc/issue"
data = """
########## Redox OS ##########
# Login with the following: #
# `user` #
# `root`:`password` #
##############################
"""
[[files]]
path = "/etc/motd"
data = """
Welcome to Redox OS!
"""
[[files]]
path = "/usr/bin"
data = "/bin"
......@@ -295,3 +275,23 @@ 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
Subproject commit 03a7f39cef39b5ae026bf8361b3a182866afb003
Subproject commit 84535c9062c8f977e0d7c76ade8a3c751982b4d6
......@@ -26,4 +26,9 @@ if [ $CACHED_UID != $RUN_UID ] || [ $RUN_GID != $CACHED_GID ]; then
chown $RUN_UID:$RUN_GID -R $CARGO_HOME $RUSTUP_HOME
fi
# fixes issue in docker for mac where fuse permissions are restricted to root:root
# https://github.com/theferrit32/data-commons-workspace/issues/5
# https://github.com/heliumdatacommons/data-commons-workspace/commit/f96624c8a55f5ded5ac60f4f54182a59be92e66d
if [ -f /dev/fuse ]; then chmod 666 /dev/fuse; fi
exec gosu $USER_NAME "$@"
......@@ -9,18 +9,27 @@ prompt = false
[packages]
drivers = {}
init = {}
nulld = {}
#pciids = {}
ramfs = {}
randd = {}
redoxfs = {}
zerod = {}
[[files]]
path="/etc/init.rc"
data="""
export PATH /bin
export TMPDIR /tmp
nulld
zerod
randd
vesad T T G
stdio display:1
ps2d us
ramfs logging
pcid /etc/pcid/initfs.toml
redoxfs --uuid $REDOXFS_UUID file
redoxfs --uuid $REDOXFS_UUID file $REDOXFS_BLOCK
cd file:
export PATH file:/bin
run.d /etc/init.d
......
......@@ -9,16 +9,25 @@ prompt = false
[packages]
drivers = {}
init = {}
nulld = {}
#pciids = {}
ramfs = {}
randd = {}
redoxfs = {}
zerod = {}
[[files]]
path="/etc/init.rc"
data="""
export PATH /bin
export TMPDIR /tmp
nulld
zerod
randd
vesad T T G
stdio display:1
ps2d us
ramfs logging
pcid /etc/pcid/initfs.toml
redoxfs disk/live: file
cd file:
......
......@@ -9,16 +9,25 @@ prompt = false
[packages]
drivers = {}
init = {}
nulld = {}
#pciids = {}
ramfs = {}
randd = {}
redoxfs = {}
zerod = {}
[[files]]
path="/etc/init.rc"
data="""
export PATH /bin
export TMPDIR /tmp
nulld
zerod
randd
vesad T T G
stdio display:1
ps2d us
ramfs logging
pcid /etc/pcid/initfs.toml
redoxfs disk/live: file
cd file:
......
Subproject commit a262db6f256fa612a61ef57870530ef8485655b5
Subproject commit 150d65c31ba05c829ba239a3febe1e44b6e512e8
Subproject commit ec66bf2ed16f1609c0fac19678e36df3bbd2fafe
Subproject commit 903390283066a988b74e86e3630106b12b4df806
bochs: build/harddrive.bin
bochs: build/livedisk.bin
bochs -f bochs.$(ARCH)
-include .config
# Configuration
## Architecture to build Redox for (aarch64 or x86_64)
ARCH?=x86_64
......@@ -5,8 +7,6 @@ ARCH?=x86_64
INSTALLER_FLAGS?=--cookbook=cookbook
## Enabled to use binary prefix (much faster)
PREFIX_BINARY?=1
## Enabled to build custom rustc
PREFIX_RUSTC?=0
## Filesystem size in MB (256 is the default)
FILESYSTEM_SIZE?=256
......@@ -15,20 +15,29 @@ UNAME := $(shell uname)
ifeq ($(UNAME),Darwin)
FUMOUNT=sudo umount
export NPROC=sysctl -n hw.ncpu
export REDOX_MAKE=make
PREFIX_BINARY=0
VB_AUDIO=coreaudio
VBM=/Applications/VirtualBox.app/Contents/MacOS/VBoxManage
else ifeq ($(UNAME),FreeBSD)
FUMOUNT=sudo umount
export NPROC=sysctl -n hw.ncpu
export REDOX_MAKE=gmake
PREFIX_BINARY=0
VB_AUDIO=pulse # To check, will probaly be OSS on most setups
VBM=VBoxManage
else
FUMOUNT=fusermount -u
export NPROC=nproc
export REDOX_MAKE=make
VB_AUDIO=pulse
VBM=VBoxManage
endif
# Automatic variables
ROOT=$(CURDIR)
export RUST_COMPILER_RT_ROOT=$(ROOT)/rust/src/llvm-project/compiler-rt
export RUST_TARGET_PATH=$(ROOT)/kernel/targets
export XARGO_HOME=$(ROOT)/build/xargo
export XARGO_RUST_SRC=$(ROOT)/rust/src
<