Commit Graph

593 Commits

Author SHA1 Message Date
Jeremy Soller
b54ea5f625
Fix container_su and remove extra --tty argument from container_shell 2025-11-01 16:06:53 -06:00
Jeremy Soller
9b65670326
Merge branch 'master' of https://gitlab.redox-os.org/redox-os/redox 2025-11-01 14:22:21 -06:00
Jeremy Soller
31c1eed5a8
Pass through REPO variables to podman and add REPO_APPSTREAM 2025-11-01 14:22:17 -06:00
bjorn3
8e8ced1f91 Fix comment syntax in makefile 2025-11-01 20:41:50 +01:00
bjorn3
18f2025931 Refactor TARGET calculation in preparation for i586-unknown-redox 2025-11-01 20:03:29 +01:00
bjorn3
9326e12213 Remove no longer necessary targets dir
All target specs we use are now built into rustc.
2025-11-01 20:03:29 +01:00
Jeremy Soller
a144044bd8
Drop minimal and minimal-net pre-built images from CI 2025-10-31 15:20:24 -06:00
Jeremy Soller
be9a3f7f6c Merge branch 'prefix-deps' into 'master'
Fix prefix not being triggered

See merge request redox-os/redox!1666
2025-10-31 11:22:17 -06:00
Wildan M
d0750a63ac Add filesystem config trigger to rebuild 2025-10-31 23:09:01 +07:00
Wildan M
8e90c80aa9 Fix prefix not being triggered 2025-10-31 22:57:16 +07:00
Wildan M
7e650742c0 Use cookbook new filesystem config 2025-10-31 15:45:07 +07:00
Wildan M
5382f39857 Update to use the new repo bin 2025-10-28 00:29:54 +07:00
Jeremy Soller
9db52437c6
Support binary prefix for aarch64 on aarch64 2025-10-21 12:27:40 -06:00
Jeremy Soller
41ca0bea4c
Set HOST_TARGET and adjust PREFIX_BINARY for podman host 2025-10-21 11:53:10 -06:00
Jeremy Soller
bf65e41266
Add HOST_TARGET to CI toolchain path 2025-10-21 10:13:36 -06:00
Jeremy Soller
8f6e204381
Build host fstools as part of fstools target 2025-10-11 13:38:14 -06:00
Jeremy Soller
0f06d86f5a
Add mount_live target 2025-10-10 11:26:00 -06:00
Jeremy Soller
00be8094b1
Revert "Install C++ header on prefix"
This reverts commit 155bcb2ff2.
2025-10-03 10:41:06 -06:00
Wildan Mubarok
155bcb2ff2 Install C++ header on prefix 2025-10-01 08:06:33 +00:00
Wildan Mubarok
4597c5f0fa Add push recipe combination and more ports to forward on QEMU 2025-09-27 22:11:42 -06:00
Wildan Mubarok
86fba41a91 Add gdbgui that works for native build 2025-09-21 16:11:55 +00:00
bjorn3
12a5a00afe Only pass recipe name to fetch.sh and repo.sh 2025-09-06 15:17:00 +02:00
Wildan M
cedf58ed5d Fix typo 2025-09-05 16:57:21 +07:00
Wildan M
a521b5fc8c Add push recipe to existing image 2025-09-04 23:37:38 +07:00
bjorn3
16e98e3f28 Add a make qemu mode to allow attaching gdb without waiting for it
This way you can unconditionally enable this mode during development
without being forced to attach a debugger every time you start a VM.
2025-08-24 18:56:39 +02:00
bjorn3
716cca1b4e Enable UEFI by default on x86_64
It boots faster and more reliable than SeaBIOS. And in practice you are
unlikely to use BIOS on real hardware if you have an x86_64 capable CPU
anyway.
2025-08-24 18:40:01 +02:00
Jeremy Soller
f768df678c Merge branch 'qemu_gpu' into 'master'
Rework qemu gpu configuration

See merge request redox-os/redox!1634
2025-08-24 09:07:42 -06:00
bjorn3
5d7fcad842 Rework qemu gpu configuration
* Make gpu=no work on arm64 and riscv64
* Register gpu's with the firmware as vga card on x86 where possible
* Add a virtio-gl option for virtio-gpu with OpenGL support (no support
  on the driver side yet)
* Support ramfb on x86
2025-08-24 16:31:54 +02:00
Wildan Mubarok
c09215748d Formatting 2025-08-18 10:37:28 +00:00
Wildan Mubarok
cb36369905 Apply apic and mouse fixes 2025-08-18 10:10:09 +00:00
Wildan Mubarok
e3f6bf4b1d Merge branch redox:master into windows-qemu 2025-08-18 08:58:19 +00:00
Wildan Mubarok
aad831766c Use HVF Acceleration by default for MacOS Silicon 2025-08-16 13:36:12 +00:00
Wildan Mubarok
b50084d4dd Add option to run Windows QEMU when using WSL2 2025-08-15 19:45:23 +00:00
Wildan M
05e7279156 Fix make invocation for Podman in MacOS 2025-08-15 12:53:08 +07:00
Jeremy Soller
69eaf3c531 Merge branch 'trixie_fix_netboot' into 'master'
Fix netbooting on Debian

See merge request redox-os/redox!1626
2025-08-12 14:02:22 -06:00
bjorn3
472df6fb44 Fix netbooting on Debian
In Debian Trixie OVMF has moved to a different location. In addition the
bootrom of the network adapters no longer contains iPXE, so we need to
manually chainload it (make sure to install the ipxe package).
2025-08-12 20:08:20 +02:00
Wildan Mubarok
6a531d6f22 Add package deps flag 2025-08-11 14:21:31 +00:00
Wildan Mubarok
fb890fdfbd Add qemu debugging for any recipes 2025-08-01 06:37:09 +00:00
Wildan Mubarok
f0a1c1cbcc Add kernel debugger GUI via podman 2025-07-31 13:33:51 +00:00
Jeremy Soller
722ebf6f30 Merge branch 'repo-offline' into 'master'
Add REPO_OFFLINE option

Closes #1202

See merge request redox-os/redox!1607
2025-07-09 09:47:50 -06:00
Wildan Mubarok
174fcaa6b9 Fix sysroot update logic 2025-07-08 10:21:16 +00:00
Wildan Mubarok
cb619120a4 Make repo config configurable with integer 2025-07-05 16:21:58 +00:00
Wildan Mubarok
47805f2362 Add REPO_OFFLINE option 2025-07-05 15:53:39 +00:00
Wildan Mubarok
916d8335e3 Support build with sccache in podman 2025-07-04 20:54:16 -06:00
Petr Hrdina
3e8464aa16
Open podman once for multiple jobs in repo.mk 2025-07-03 13:12:36 +02:00
Jeremy Soller
fcbc2ea787
Fix libtool-build not removing old directories 2025-07-02 14:27:07 -06:00
Petr Hrdina
c90d1014a0
Allow multiple recipes in target without 'l' 2025-07-02 10:22:52 +02:00
Jeremy Soller
6b73b106f1 Merge branch 'uefi-bins' into 'master'
Dynamically search UEFI firmware

See merge request redox-os/redox!1593
2025-06-29 12:21:15 -06:00
Wildan Mubarok
fd370ccf7e Dynamically search UEFI firmware 2025-06-29 12:21:15 -06:00
Wildan Mubarok
f865aa3866 Do not build host prefix for MacOS Podman build 2025-06-29 12:20:47 -06:00
Jeremy Soller
3c9bffa547 Merge branch 'master' into 'master'
Add make recipe commands for multiple targets, speedup category.sh for podman build.

See merge request redox-os/redox!1590
2025-06-25 08:46:04 -06:00
Jeremy Soller
1991f17ef7 Merge branch 'netboot_improvements' into 'master'
Bunch of netboot improvements

See merge request redox-os/redox!1591
2025-06-25 08:43:11 -06:00
Wildan Mubarok
e36fdf54c4 Fix podman continously trying to rebuild libtool-build 2025-06-24 10:39:51 +00:00
bjorn3
fb64e5e9b8 Use the build dir as tftproot and build a suitable tftproot when building the live disk 2025-06-22 20:23:28 +02:00
bjorn3
d2fde06fd1 Rename livedisk.iso to redox-live.iso 2025-06-22 20:20:09 +02:00
bjorn3
ccb1509f00 Rename redox-live.img to redox-live.iso 2025-06-22 20:13:59 +02:00
Petr Hrdina
42b1a1c14a
Add make recipe commands for multiple targets 2025-06-22 12:34:42 +02:00
Wildan Mubarok
5ebd0729f9 Make libtool cloning works for older git 2025-06-13 02:16:00 +00:00
Jeremy Soller
691d845d4b Merge branch 'virtualbox-deprecated-audio-switch' into 'master'
vbox: --audio is deprecated/removed

See merge request redox-os/redox!1586
2025-06-12 11:03:05 -06:00
Jeremy Soller
05e7695761 Merge branch 'faster-libtool-clone' into 'master'
Speedup cloning libtool

See merge request redox-os/redox!1584
2025-06-12 10:54:46 -06:00
Josh Megnauth
e352fe6bfd
vbox: --audio is deprecated/removed
--audio-driver is the replacement switch.
2025-06-06 23:54:29 -04:00
Wildan Mubarok
ed0da0981b Speedup cloning libtool 2025-06-03 18:35:10 +00:00
bjorn3
41b51f692a Add support for netboot
This includes building a tftp root and using it with qemu.
2025-06-01 20:54:56 +02:00
zinzaguras
9a3866e758 Fix non podman build.
1. Export version for libtool cause some packages checks for it;
2. Set PATH variable to include redox toolchain before sysroot been created,
as it's required by libtool and relibc.
2025-05-12 23:05:35 +00:00
Jeremy Soller
a874fe29e4
Add target for finding recipe 2025-05-09 10:23:05 -06:00
Jeremy Soller
8a3948e181
Use gnulib github mirror 2025-05-07 10:22:22 -06:00
Jeremy Soller
a162e93e79
ci-toolchain should depend on container tag 2025-05-06 20:00:34 -06:00
Jeremy Soller
38e0f178fb
Build minimal and minimal-net images 2025-04-24 17:19:22 -06:00
Ron Williams
daf4a0f730 Fix typo 2025-04-23 21:34:02 -07:00
Ron Williams
cf9a0085be Improve host vs container separation of fstools 2025-04-24 04:28:15 +00:00
Jeremy Soller
d8a3052f88 Use podman compiled list_packages for ci-pkg 2025-04-23 19:21:34 -06:00
Jeremy Soller
eb474e6858 Remove docgen 2025-04-23 19:19:45 -06:00
Jeremy Soller
198f665c0d Fix installer path 2025-04-23 19:18:42 -06:00
Jeremy Soller
490b7d7f3a Add fstools and container dependencies to ci-pkg target 2025-04-23 19:11:58 -06:00
Jeremy Soller
5e2bc43891
Build installer and redoxfs for host outside of podman 2025-04-23 17:40:56 -06:00
Jeremy Soller
b580423f76
Make image directory for server/desktop/demo targets 2025-04-23 15:42:09 -06:00
Jeremy Soller
058b402bfc
Set sysroot date after finishing build 2025-04-23 15:38:46 -06:00
Jeremy Soller
5e4d5af2f9
Revert "Make sure repo.tag is built before harddrive.img and livedisk.iso in ci-img"
This reverts commit d6f1dbf284.
2025-04-23 15:38:21 -06:00
Jeremy Soller
cecae079fc
Fix repo build with podman 2025-04-23 15:38:03 -06:00
Jeremy Soller
d6f1dbf284
Make sure repo.tag is built before harddrive.img and livedisk.iso in ci-img 2025-04-23 15:29:33 -06:00
Jeremy Soller
d4626b6f1e
Do not use podman for image recipes 2025-04-23 10:21:18 -06:00
Jeremy Soller
f4fe37478f
Minor cleanup of fstools 2025-04-23 09:33:25 -06:00
Jeremy Soller
dd484d3767
Disable appstream generation for CI until fixed inside podman 2025-04-21 14:58:30 -06:00
Jeremy Soller
a75fc7ea77
Drop PREFER_STATIC from makefiles 2025-04-18 10:44:49 -06:00
Jeremy Soller
eb00e7db8c
Fix ci targets when using podman 2025-04-18 09:11:36 -06:00
Jeremy Soller
5e3bcaee08
Add custom target for compiling relibc-freestanding for riscv64gc 2025-04-17 10:10:29 -06:00
bjorn3
35b9b69c6d Fix qemu config for multi-head gpu
The old config would create two separate VGA compatible graphics
adapters. Redox currently only supports this when the firmware
initializes both graphics adapters as boot framebuffers. Only UEFI
supports this however. Using a single multi-head virtio-gpu graphics
adapter makes it work on BIOS too.
2025-03-02 20:43:51 +01:00
Vincent Berthier
4573edcc16 Add shell and build environment for NixOS 2025-02-18 22:23:42 +00:00
Leandro Santiago
dcb884549a Allow building when SELinux is not used
Add `USE_SELINUX` variable to `make all`
2025-02-12 20:30:06 +01:00
Anhad Singh
78a2aa75dd
fix(mk/ci.mk): set COOKBOOK_HOST_SYSROOT and COOKBOOK_PREFER_STATIC
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-02-05 02:33:19 +11:00
Ron Williams
bd772d5b97 Add path to fetch.tag 2025-01-26 22:32:37 +00:00
Jeremy Soller
2e8196ae5e Merge branch 'dynamic_linking' into 'master'
fear(repo.mk): PREFER_STATIC

See merge request redox-os/redox!1540
2025-01-20 19:55:22 +00:00
Anhad Singh
cd911d16df
fear(repo.mk): PREFER_STATIC
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-20 23:15:19 +11:00
Jeremy Soller
cde151ccb7
Drop rust freestanding step 2025-01-14 12:28:58 -07:00
Jeremy Soller
74f0a0eea1 Merge branch 'dynamic_linking' into 'master'
feat(prefix): set default hash style to GNU

See merge request redox-os/redox!1537
2025-01-11 18:39:40 +00:00
Ron Williams
0bf3a56fea Add 'touch sysroot' after copy of relibc-install 2025-01-09 16:15:58 -08:00
Anhad Singh
48ca562cf1
feat(prefix): set default hash style to GNU
Our dynamic linker supports it.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-09 20:20:21 +11:00
Anhad Singh
34153db14d
fix(prefix.mk): gcc-freestanding
Build libgcc (relibc needs it) and disable shared.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2024-12-27 23:23:31 +11:00
Jeremy Soller
b812780a54 Merge branch 'dynamic_linking' into 'master'
fix(mk/prefix.mk): fix libtool build

See merge request redox-os/redox!1531
2024-12-22 02:21:36 +00:00
Anhad Singh
a7c06e9b72
fix(mk/prefix.mk): fix libtool build
Worked for me before as I had the old sources. Now the ltversion should
be correct and libtool should be correctly built.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2024-12-21 20:28:11 +11:00
Jeremy Soller
0be6bddbb8 Merge branch 'dynamic_linking' into 'master'
fix(libtool): correct ltversion

See merge request redox-os/redox!1530
2024-12-20 14:25:52 +00:00
Anhad Singh
f8d2c7ed4b
fix(mk/prefix.mk): correct ltversion
The script `build-aux/git-version-gen` needs sufficient depth to
correctly determine the version. Also it has to be in tree, otherwise
the version is reported as 'UNKNOWN', breaking some packages.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2024-12-21 01:09:52 +11:00
Jeremy Soller
01737d8537 Merge branch 'qemu-rasp' into 'master'
Fix make qemu rasperry pi 3b emulation

See merge request redox-os/redox!1528
2024-12-18 18:19:07 +00:00
Andrey Turkin
6205eafd4c Fix make qemu rasperry pi 3b emulation 2024-12-16 06:50:21 +03:00
Anhad Singh
6450defff0
fix(repo.mk): set COOKBOOK_HOST_SYSROOT
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2024-12-12 00:13:27 +11:00
Anhad Singh
008160036d
feat(prefix): libtool
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2024-12-02 22:21:45 +11:00
Ron Williams
e9628b64d8 Fix CI, add packages to ci.toml so desktop can build from binaries 2024-11-21 15:06:54 +00:00
Jeremy Soller
9d789178be
Make it possible to set qemu machine for aarch64 2024-10-29 08:52:10 -06:00
Jeremy Soller
ac8efee64a Build docgen and pkgar as part of fstools 2024-10-19 16:53:33 -06:00
Jeremy Soller
d79cc14f6a
Generate appstream data when building repo via CI 2024-10-15 21:14:30 -06:00
Andrey Turkin
03633046cc Riscv64gc support in the build scripts
This architecture is different from x86/aarch because its rust triplet (riscv64gc-...) differs from gcc/llvm/binutils triplet (more general riscv64-...). Therefore the build scripts have to bridge that mismatch.

This introduces new build-time environment variable GNU_TARGET which corresponds to a target used by C world utilities whereas existing TARGET now describes rust target.
2024-09-30 10:28:37 +03:00
Ribbon
56b3efa7b6 Enable Podman by default 2024-09-20 21:00:16 +00:00
IncompententPirate
ad7733c7a1 Clarify error message by adding double quotes around 'just' to reduce confusion in mk/depends.mk 2024-09-06 09:40:41 +00:00
Ron Williams
fd40776d35 Fix CI to avoid RedoxFS/FUSE/tar problems 2024-08-28 12:55:25 -07:00
Ron Williams
f51dee2ea1 Make installer compile on host, list_packages compile in Podman when PODMAN_BUILD=1 2024-08-17 23:59:37 +00:00
Ron Williams
c0ccfc1572 Don't run fetch if rebuildinga 2024-08-05 11:46:18 -07:00
Ribbon
8cd0b1af0f Rename two make options to a correct name 2024-07-20 00:47:36 +00:00
Ribbon
49102f6332 Add explanation comments on the build system files 2024-07-09 12:58:07 +00:00
Jeremy Soller
db2da8206e
Clarify qemu argument for ata disk 2024-06-14 08:59:39 -06:00
bjorn3
1448667c3d Replace separate targets for each disk kind with a make flag
A command like `make qemu_nvme` will become `make qemu disk=nvme` with
this change.

Also add support for selecting a virtio-blk disk and remove the
*_no_build targets as they didn't do anything different from the regular
targets anyway.
2024-06-13 17:17:57 +02:00
Jeremy Soller
50c9d3d2ce
Use separate copy of relibc for freestanding 2024-05-11 15:42:00 -06:00
Jeremy Soller
f9823473e2
Use target-specific folder for relibc source for freestanding build 2024-05-11 14:37:47 -06:00
Jeremy Soller
a393103334
use usb-tablet instead of usb-mouse for qemu aarch64 2024-05-08 13:08:54 -06:00
Jeremy Soller
f474b4cfb9
Disable binary prefix when not building on x86_64 Linux 2024-05-06 11:35:23 -06:00
Ron Williams
b5f22bd20f Make QEMU smp and mem options configurable 2024-04-04 13:08:10 +00:00
Jeremy Soller
ff74ae6681
Use qemu-xhci for usb on aarch64 2024-03-25 14:29:10 -06:00
bjorn3
40305c7980 Use U-Boot with QEMU again if efi=no is used
Also add a nicer error message when the firmware package is not
installed.
2024-03-20 15:43:53 +01:00
Jeremy Soller
0e892b725f
Use AAVMF for qemu virt 2024-03-19 20:28:48 -06:00
bjorn3
7043e9e932 Prevent the build cache for the installer getting clobbered
Previously it was getting built by two different toolchains (nightly
from rustup and the relibc prefix) Also some env vars differed between
both invocations causing blake3 and sodiumoxide to get rebuilt.
2024-03-17 18:54:24 +01:00
Jeremy Soller
c959953e0a Use REPO_NONSTOP in ci.mk 2024-01-28 16:17:07 +00:00
bjorn3
69364ba176 Only enable -d cpu_reset for qemu when debugging
It is only useful when debugging and otherwise just throws a whole bunch
of logs on every boot.
2024-01-25 15:22:03 +01:00
Jeremy Soller
33769cd851 Allow any just version 2024-01-12 13:04:29 -07:00
bjorn3
aa7edc6ef1 Zstd compress all images
I tried gzip, bzip2, xz and xzstd. Xz 22s for a 128MB disk image. Out of
all other options zstd was both the fastest to compress (<1s) and
produced the smallest file (28MB).
2024-01-11 21:18:21 +01:00
Jeremy Soller
dac858b84e
Default to using kvm when arch is i686 and host is x86_64 2024-01-11 09:55:54 -07:00
Jeremy Soller
17e3c17c73
Do not use prefix rustc to determine host target 2024-01-10 11:08:31 -07:00
Jeremy Soller
7de457e022
Ensure lib/rustlib/HOST_TARGET/lib exists in prefix tarballs 2024-01-10 09:53:13 -07:00
bjorn3
34acc9cb04 Don't checkout rust submodule by default
It is no longer necessary for regular builds as of the previous commit.
This will drastically improve the time it takes to do the initial clone
of redox.
2024-01-10 15:19:06 +01:00
bjorn3
da380dd368 Don't rebuild lib/rustlib/src in the rust sysroot
The prebuilt tarball already contains it now
2024-01-09 11:05:06 +01:00
bjorn3
5ce30e6da6 Somewhat simplify config.mk
* nproc exists on FreeBSD too
* REDOX_MAKE is generally make, so use that as default with per-OS
  override if necessary.
* HOST_TARGET can be fetched directly from rustc.
2024-01-08 19:24:14 +01:00
bjorn3
cf04f50d86 Use sparse files for the generated disk images on all OSes
Rather than just on macOS. This can save quite a bit of space depending
on the amount of free space on the root filesystem of the disk image.
2024-01-08 19:09:51 +01:00
Jeremy Soller
0427420717
Use installer to resolve filesystem size 2024-01-04 12:22:43 -07:00
Jeremy Soller
27c3d69aed Merge branch 'sparse_extra' into 'master'
Use sparse allocation of extra.img on Linux too

See merge request redox-os/redox!1391
2024-01-03 19:23:46 +00:00
Ron Williams
6258becc3c add nonstop, uc and ucf to build, plus scripts include-recipes.sh and show-package.sh 2024-01-03 19:15:30 +00:00
bjorn3
ffd64a8703 Use sparse allocation of extra.img on Linux too
fallocate immediately allocates the full size of the file, even though
it likely won't end up being used.
2023-12-17 12:44:32 +01:00
Ivan Tan
097c6876bf add raspi3b config 2023-12-17 10:16:42 +08:00
Jeremy Soller
1afef4aef0 Merge branch 'ivan/board_var' into 'master'
aarch64: support building Redox for different motherboard.

See merge request redox-os/redox!1388
2023-12-15 23:18:38 +00:00
4lDO2
e3013ac40b
Add checks and install cbindgen in bootstrap.sh. 2023-12-14 15:32:54 +01:00
Ivan Tan
584e6fb548 aarch64: support building Redox for different motherboard. 2023-12-14 12:29:20 +00:00
Jeremy Soller
fb1478d9bf
Replace rebuild-recipe with make cr.recipe and make ucr.recipe 2023-12-13 14:41:38 -07:00
Jeremy Soller
7bec121856
Fix clean prefix build 2023-12-13 12:10:42 -07:00