Commit Graph

283 Commits

Author SHA1 Message Date
Wildan M
c1db92cb22 Add error context into logs 2025-11-03 21:35:47 +07:00
Wildan M
e9cea215de Don't log successful fetch 2025-11-03 21:31:55 +07:00
Wildan M
2848e960fc Add .log suffix 2025-11-03 21:25:57 +07:00
Wildan M
7524f32f71 Clean log from ANSI 2025-11-03 21:23:48 +07:00
Wildan M
97d8b2f691 Append target to log dir so it can run parallel 2025-11-03 20:52:43 +07:00
Wildan M
1e0b60eec5 Write build logs 2025-11-03 20:44:19 +07:00
Wildan M
af988bf669 Apply cargo offline flags to build flags 2025-11-03 23:36:35 +07:00
Wildan Mubarok
f046e34c3f Traverse package deps from build deps 2025-11-02 17:37:19 -07:00
Wildan M
4453cb54cb Fix fmt 2025-11-02 19:03:55 +07:00
Wildan M
1b7b08d6c3 Set default GNU FTP mirror 2025-11-02 18:57:30 +07:00
Jeremy Soller
a980bb1ab7
Rename appstream.pkgar to repo-appstream.pkgar to prevent conflicts 2025-11-01 17:45:39 -06:00
Jeremy Soller
b4f8600997
Use pkgar crate instead of command to generate appstream.pkgar 2025-11-01 16:47:06 -06:00
Jeremy Soller
85efc0eeaa
Print full report when generating appstream data 2025-11-01 16:39:32 -06:00
Wildan M
b8be9c5176 Fix repo directory install path 2025-11-01 21:19:29 +07:00
Wildan M
835c25e92d Make repo call repo_builder instead 2025-11-01 19:21:57 +07:00
Wildan Mubarok
788088e498 Read from installer config 2025-10-31 09:25:28 -06:00
Wildan M
66413edfb3 Don't clean build deps 2025-10-28 13:17:31 +07:00
Wildan M
b1fec31dff Fix push command and category on make 2025-10-28 00:20:20 +07:00
Wildan M
19f5d8ff3e Make last line visible 2025-10-27 21:51:35 +07:00
Wildan M
2b8915e24d Fix warnings 2025-10-27 17:32:54 +07:00
Wildan M
e30cb66990 Handle carriage returns 2025-10-26 22:43:02 +07:00
Wildan M
1ecf2311e4 Add ansi escape 2025-10-26 22:20:30 +07:00
Wildan M
a943426bde Try use pty 2025-10-26 22:06:59 +07:00
Wildan M
4fb4727f60 Autoscroll cook queue 2025-10-25 19:23:03 +07:00
Wildan M
1e37be1d4f Add category, spinner, and always verbose 2025-10-25 17:48:03 +07:00
Wildan M
911e813025 More context messages, add find cmd 2025-10-25 16:17:37 +07:00
Wildan M
067274504d Fix warn 2025-10-25 12:23:14 +07:00
Wildan M
d91f0eb8d5 Fix package log 2025-10-25 12:17:11 +07:00
Wildan M
be2a4ddd0a Tell what recipe error, optimized rendering 2025-10-25 12:06:54 +07:00
Wildan M
8b53fab9fd Fix clean 2025-10-25 05:44:35 +07:00
Wildan M
ff3cd11099 Now mostly usable 2025-10-25 05:38:54 +07:00
Wildan M
0bad6d1562 Switchable log and log fetch fix 2025-10-24 20:15:58 +07:00
Wildan M
51a5ea0848 Add mouse handling 2025-10-24 19:34:41 +07:00
Wildan M
2af2a5bd26 Add command stdout pipe 2025-10-24 18:41:35 +07:00
Wildan M
e03e843abd Test config 2025-10-24 17:07:06 +07:00
Wildan M
ab57937dd4 Implement cook TUI 2025-10-24 16:56:52 +07:00
Wildan M
8e2ac316e4 Compiling with direct call to cook 2025-10-24 16:18:11 +07:00
Wildan M
97bef43ca0 Merge branch 'master' into repo-bin 2025-10-24 13:34:29 +07:00
Wildan M
f41b6845b3 Rename build.rs to cook_build.rs 2025-10-23 20:50:25 +07:00
Wildan M
7d79ecdad1 Remove build_only 2025-10-23 20:07:50 +07:00
Wildan M
771f036c0a Fix fmt 2025-10-23 20:04:38 +07:00
Wildan M
c16cf50b11 Migrate build script to cook lib 2025-10-23 20:01:03 +07:00
Wildan M
79f1eca998 Fix err, use anyhow 2025-10-23 12:22:43 +07:00
Wildan Mubarok
1b77b93f12 Merge branch cookbook:master into repo-bin 2025-10-23 04:25:39 +00:00
Wildan Mubarok
dba3334d82 Add a way to download compiled recipes from remote 2025-10-19 06:20:39 -06:00
Jeremy Soller
b68340234b Merge branch 'smart-unfetch' into 'master'
Auto unfetch for tar recipes and auto fetch symlink recipes

Closes redox#1701

See merge request redox-os/cookbook!658
2025-10-11 09:47:00 -06:00
Wildan M
874140a24c Fix mirror config readme and tell config errors 2025-10-11 22:20:40 +07:00
Wildan M
7224ca0707 Tell if tar removed 2025-10-11 21:28:18 +07:00
Wildan M
3a9f249e6e Tell if source removed 2025-10-11 21:24:52 +07:00
Wildan M
25dd3b79a1 Don't show progress bar on normal read 2025-10-11 21:13:14 +07:00
Wildan M
d20b16037e Update rust edition and use redox-pkg from crates io 2025-10-11 20:26:02 +07:00
Wildan M
59c9eeff3e Mention source blake3 if error 2025-10-11 16:37:16 +07:00
Wildan M
d63a59720b Automatic unfetch for tar recipes 2025-10-11 16:10:58 +07:00
Wildan M
b5feb0d9cb Set cargo offline flags when offline cookbook is set 2025-10-09 13:34:30 +07:00
Jeremy Soller
26b36a9705 Merge branch 'recipe-version' into 'master'
Detect version and provide manual version metadata

See merge request redox-os/cookbook!654
2025-10-06 06:33:21 -06:00
Wildan M
485b6dd82d Detect version and provide manual version metadata 2025-10-06 13:49:14 +07:00
Wildan M
bbb8589b0c Allow check build deps on make image 2025-10-05 16:24:23 +07:00
Wildan M
26e6e0dc06 fmt 2025-10-03 13:59:14 +07:00
Wildan M
c51fad08ff Add mirror config 2025-10-03 13:55:38 +07:00
Jeremy Soller
cd4d3b20ca Merge branch 'fast-deps' into 'master'
Skip checking source freshness for build dependencies

See merge request redox-os/cookbook!639
2025-09-28 08:17:15 -06:00
Wildan M
21bfbac091 Fix warning to metapackages 2025-09-28 16:10:03 +07:00
Wildan M
c8dc396658 fmt 2025-09-28 14:19:06 +07:00
Wildan M
84ea44bc27 Improve is_deps case 2025-09-28 14:17:14 +07:00
Wildan M
6a19a12380 Skip checking source freshness for build dependencies 2025-09-28 13:36:44 +07:00
Wildan Mubarok
6d02a1c36e Add -g to generate debuginfo on gcc 2025-09-21 15:54:37 +00:00
Wildan Mubarok
261ea34f69 Make jobs applied to cargo and configurable from env 2025-09-19 10:12:38 +00:00
Jeremy Soller
49180ea4f6 Merge branch 'nonstop-builder' into 'master'
Allow missing recipe in repo builder

See merge request redox-os/cookbook!613
2025-09-12 15:40:55 -06:00
Wildan Mubarok
0d307fa4e7 Initial self-hosting support 2025-09-12 15:39:51 -06:00
Wildan M
e91abf4263 Allow missing recipe in repo builder 2025-09-10 15:26:26 +07:00
Jeremy Soller
b8f49078b9
Use GNU_TARGET prefix for cmake cross compiler 2025-09-08 08:02:53 -06:00
Jeremy Soller
1b29c1e173
Clean up compiler flags 2025-09-07 20:53:28 -06:00
Jeremy Soller
8e48e73584
Make it easier to compile cmake software dynamically 2025-09-07 19:01:27 -06:00
Jeremy Soller
5064d0e02e
Allow fallback to static builds on targets with broken dynamic linking 2025-09-07 17:47:43 -06:00
bjorn3
ee25a707f8 Remove pkg_deps binary 2025-09-06 11:10:23 +02:00
bjorn3
9a40987f61 Use LF as line ending in repo_builder.rs 2025-09-06 11:10:23 +02:00
bjorn3
04d88c6109 Replace COOKBOOK_OFFLINE with --offline 2025-09-06 11:10:23 +02:00
bjorn3
13d9e4794f Move handling of multiple recipes into cook 2025-09-02 20:58:11 +02:00
Wildan Mubarok
605bfcfbd4 Add initial repo bin 2025-09-01 15:39:13 +00:00
Wildan M
8814a5d494 Include flags to meson cross file 2025-09-01 15:17:09 +07:00
Jeremy Soller
4ba8438bd5 Merge branch 'more-templates' into 'master'
Add more build templates and automatic DYNAMIC_INIT

Closes redox#1707

See merge request redox-os/cookbook!567
2025-08-20 06:53:38 -06:00
Wildan Mubarok
541e855d72 Add more build templates and automatic DYNAMIC_INIT 2025-08-20 06:53:38 -06:00
Wildan Mubarok
fec945560e Retain comment 2025-08-18 02:00:58 +00:00
Wildan M
3da709fb1f Cache auto deps 2025-08-18 08:45:52 +07:00
Wildan M
519a9911d9 Fix build 2025-07-27 22:13:30 +07:00
Wildan M
5de3e8327a Fix build 2025-07-27 22:09:12 +07:00
Wildan M
132199cd54 Apply version meta 2025-07-27 21:50:37 +07:00
Wildan M
25141384b4 Support for metapackages 2025-07-27 21:43:54 +07:00
Wildan Mubarok
c05194b3e9 Add LDFLAGS for linking nested libraries and helper for downloading gnu-config 2025-07-22 10:15:50 +00:00
Wildan Mubarok
745a3b8830 Fix git dynamic link 2025-07-15 01:12:23 +00:00
Jeremy Soller
06c4188d9d Merge branch 'shallow-clone-and-rust' into 'master'
Implement shallow clone and migrate rust recipe

See merge request redox-os/cookbook!540
2025-07-13 06:47:11 -06:00
Wildan Mubarok
8d10768c19 Implement shallow clone and migrate rust recipe 2025-07-13 06:47:11 -06:00
Wildan Mubarok
cf13e381c7 Write repo builder in rust 2025-07-13 06:44:25 -06:00
auronandace
144d804a3a be explicit in collecting to a Vec of PackageName 2025-07-08 17:19:02 +01:00
Jeremy Soller
9403e65845 Merge branch 'improve-recipes-packages-api' into 'master'
Improve package and recipes API

See merge request redox-os/cookbook!534
2025-07-08 06:06:33 -06:00
Josh Megnauth
26c680d57e
Improve package and recipes API
The main changes here are to leverage PackageError and PackageName more.

I also fixed a bug I introduced by misunderstanding code in auto_deps. auto_deps should return PackageNames instead of Strings, but I converted the Strings too early.
2025-07-07 23:17:04 -04:00
Wildan Mubarok
49bb9d8b64 Set meson cross file prefix to /usr 2025-07-07 22:26:37 +00:00
Wildan Mubarok
bc2a4d908a Add an option to not update recipes 2025-07-05 15:45:05 +00:00
Josh Megnauth
0ae1974a03
Move struct Package to redox-pkg
This deduplicates code as well as forces names to be sanitized. The API
for both redox-pkg and cookbook need some reimagining due to the
reshuffling, but this patch is not concerned with that as yet.
2025-07-05 07:48:28 -04:00
Jeremy Soller
f7f69579e5 Merge branch 'meson-sccache' into 'master'
Fix regression in meson

See merge request redox-os/cookbook!523
2025-07-04 18:56:14 -06:00
Wildan Mubarok
4499e9b688 Rename RUSTC_WRAPPER to CC_WRAPPER 2025-07-05 00:04:22 +00:00
Wildan Mubarok
81ed01792d Fix regression in meson 2025-07-04 23:44:44 +00:00
Wildan Mubarok
c03c493bcb Add support for sccache envar handling 2025-07-04 07:31:50 -06:00
Josh Megnauth
57d4249847
Scan more directories in auto_deps
Closes: redox-os/redox#1600, redox-os/redox#1598
Probably closes: redox-os/installer#24

Some packages place files in nested directories, such as
`lib/packagename` or `libexec/ARCH/gcc`. If these directories are not
scanned, the dependencies key in stage.toml will be empty which leads to
dependencies not being installed in the image.
2025-07-02 01:51:00 -04:00
Jeremy Soller
3ec01b7693
Greatly increase recipe scanning performance 2025-06-13 12:28:55 -06:00
Wildan Mubarok
0e5e9fbc58 Cook recipes with depedencies 2025-06-09 18:17:18 +00:00
Jeremy Soller
4228bd0d69
Fix cmake template and update libjpeg-turbo recipe 2025-05-10 20:58:38 -06:00
Jeremy Soller
8f2bffb63b
Improve cmake template 2025-05-10 12:58:22 -06:00
Jeremy Soller
9772ec2a7f
gtk3: fix compilation 2025-05-04 19:59:34 -06:00
Jeremy Soller
f2a3df2473
Allow cookbook_configure and cookbook_cmake templates to take arguments 2025-05-02 10:04:17 -06:00
Jeremy Soller
047e6ca0ec
Add meson template 2025-05-01 13:33:51 -06:00
Jeremy Soller
289c3e69b8
Drop COOKBOOK_PREFER_STATIC 2025-04-18 10:52:50 -06:00
Jeremy Soller
f9cd5a5901
Calculate package dependencies for publish again 2025-04-14 08:09:01 -06:00
Jeremy Soller
6909fdd9b2
Refactor shared dependency handling 2025-04-11 11:15:44 -06:00
Josh Megnauth
f677a16a32
fix: Unit tests should use blake3 2025-03-07 22:42:14 -05:00
Jeremy Soller
1334299b79
Change dynamic template prefix to /usr 2025-02-28 09:47:42 -07:00
Jeremy Soller
0a475b3d04 Apply usrmerge to sysroot 2025-02-22 08:25:31 -07:00
Jeremy Soller
9c54dacdf3
Set default configure prefix to /usr 2025-02-18 15:47:02 -07:00
LLeny
bde00ef0c7 Adds patches and script to SourceRecipe::Git 2025-02-18 21:14:57 +08:00
Jeremy Soller
914b78a284 Merge branch 'patch10' into 'master'
fix(cook/fetch): check if directory does not exist

See merge request redox-os/cookbook!445
2025-02-02 15:28:51 +00:00
Jeremy Soller
6711952f88 Merge branch 'patch12' into 'master'
fix(cookbook): add runtime dependencies to repo

See merge request redox-os/cookbook!442
2025-02-02 15:28:07 +00:00
Anhad Singh
5b6e0ebe35
fix(runtime_deps_of): do not error out if no packages are specified
This may be the case if repo.sh did not build any TOML recipes. In that
case, we can just exit cleanly.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-02-02 16:55:14 +11:00
Anhad Singh
330ad13e28
fix(cook/fetch): check if directory does not exist
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-02-02 13:58:24 +11:00
Anhad Singh
78bf3a68fc
misc: cleanup
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-02-01 00:19:18 +11:00
Anhad Singh
bd5f5357a8
fix(cookbook): add runtime dependencies to repo
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-02-01 00:14:42 +11:00
Anhad Singh
eede787cbf
fix(cook): copy source only if newer
Fixes the bug where libgcc was unnecessarily building multiple times.
Which in turn caused other packages to rebuild.

Example: The source path is set to `prefix/${TARGET}/sysroot`. Currently
the way `cook` handles `source.path` ends up messing the timestamp of
`recipes/libs/libgcc/source` as it just performs `copy_dir_all(path,
&source_dir)` without checking if the timestamp of the source path
specified in the recipe was changed. This would consequently update the
timestamp of the source and cause it to rebuild.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-31 18:39:52 +11:00
Anhad Singh
212692e1ea
fix(cook): build shared dependencies
Before it was not check if the shared dependencies of a package had been
built. This resulted in the installer panicking as it tried to install
a non-built package. This commit fixes that issue.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-28 21:52:34 +11:00
Anhad Singh
8b663ee368 fix(cookbook): shared dependencies
These shall only be added iff `PREFER_STATIC` is not set.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-23 16:12:12 +11:00
Anhad Singh
3ee1f4da00 feat(cookbook): add the option to prefer static
By default all libraries and applications that can be dynamically linked
will be dynamically linked. You can override this behaviour by setting
the `COOKBOOK_PREFER_STATIC` environment variable. Note that if you
perviously did not use this flag, it might (most likely will) require a
complete userland sysroot recompilation.

It will look like this:
```bash
$ make clean
$ COOKBOOK_PREFER_STATIC=yes make image
```

For testing, the following will also work:
```bash
$ COOKBOOK_PREFER_STATIC=yes make cr.{PACKAGE_NAME} # obviously replace
                                                    # PACKAGE_NAME with
                                                    # the name of a package :)
```

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-20 19:55:37 +11:00
Anhad Singh
9f2cb652a3 feat(cookbook): rust dynamic
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-20 19:01:36 +11:00
Anhad Singh
0f6a6e259c feat(cook): prescript for source scripts
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-20 19:01:07 +11:00
Anhad Singh
584a94fb24
feat(cookbook): auxiliary dynamic linking functions
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2024-12-02 23:30:51 +11:00
Jeremy Soller
aae056594d
Remove legacy packaging 2024-10-18 12:57:17 -06:00
Jeremy Soller
3b954f7f72
cook: add pkgname to appstream data 2024-10-16 20:58:17 -06:00
Andrey Turkin
d7ecf2e747 RISC-V target support 2024-10-16 21:20:38 +03:00
Kamil Koczurek
487c0c83c3 Add path source specifier
Also:
* rustfmt
2024-09-10 10:37:19 +02:00
bjorn3
4a2109c2c7 Use a single source dir for the drivers and drivers-initfs recipes
This makes it easier to make driver changes. And in the future other
recipes could potentially benefit from the same infrastructure too.
2024-07-10 22:20:43 +02:00
bjorn3
0bfd573dda Convert orbutils recipes from recipe.sh to recipe.toml 2024-07-06 22:01:16 +02:00
4lDO2
1b5c1fd42b
Fix make clean. 2024-03-23 14:10:29 +01:00
Ron Williams
15d9970802 move helix to tools, with working recipe, plus fix COOKBOOK_DEBUG 2024-01-27 13:23:27 +00:00
bjorn3
f845feb352 Rebuild sysroot if dependencies change
This make a simple make r.initfs enough to rebuild the initfs when
changing drivers. Previously make cr.initfs was necessary which rebuilds
redox-initfs-ar from scratch.
2024-01-12 13:49:06 +01:00
Ron Williams
c5979ec5ba add debug option and disable strip if desired 2024-01-08 13:40:59 -08:00
bjorn3
6b90326bca Make sure to install recipes using the cargo template get installed in /usr/bin too 2024-01-08 21:45:59 +01:00
Jeremy Soller
d56958abcc Merge branch 'code_cleanups' into 'master'
Various code quality improvements to the cookbook code

See merge request redox-os/cookbook!336
2024-01-08 19:16:01 +00:00
bjorn3
91f885bddb Remove sha256 support
Sha256 is slower than blake3 and all recipes use blake3 now.
2024-01-08 20:00:30 +01:00
Ribbon
e2540c49ad Migrate the template scripts to /usr 2024-01-08 18:51:42 +00:00
bjorn3
48e5ef02eb Compare actual filenames rather than their lossy conversions
This is both faster and more correct.
2024-01-08 19:48:06 +01:00
bjorn3
64ea29f63b Remove ProgressBarWrite
It is unused.
2024-01-08 19:42:50 +01:00
bjorn3
5fed46f97e Significantly simplify src/blake3.rs by using the new update_reader method 2024-01-08 19:41:23 +01:00
Jeremy Soller
561204cb56
Warn and create source dir if no source provided 2023-12-13 14:52:36 -07:00
mattmadeofpasta
536118a146
Resume interrupted downloads 2023-11-08 13:11:50 +00:00