cookbook issueshttps://gitlab.redox-os.org/redox-os/cookbook/-/issues2024-03-27T18:03:01Zhttps://gitlab.redox-os.org/redox-os/cookbook/-/issues/198Packagers list2024-03-27T18:03:01ZRibbonPackagers listThis issue covers our current packagers.
- [Jeremy Soller](https://gitlab.redox-os.org/jackpot51)
- [Ribbon](https://gitlab.redox-os.org/hatred_45)
- [Ron Williams](https://gitlab.redox-os.org/rw_van)
- [Bendeguz Pisch](https://gitlab.r...This issue covers our current packagers.
- [Jeremy Soller](https://gitlab.redox-os.org/jackpot51)
- [Ribbon](https://gitlab.redox-os.org/hatred_45)
- [Ron Williams](https://gitlab.redox-os.org/rw_van)
- [Bendeguz Pisch](https://gitlab.redox-os.org/bpisch)
- [Chocimier](https://gitlab.redox-os.org/Chocimier)https://gitlab.redox-os.org/redox-os/cookbook/-/issues/197Trigger recipe relink when relibc changes2024-03-26T21:28:57ZRibbonTrigger recipe relink when relibc changesCurrently the build system don't trigger a relink of all enabled recipes when the relibc submodule changes (new commit hash), this make the recipes use the old version of the relibc object and don't apply new fixes or improvements.
The ...Currently the build system don't trigger a relink of all enabled recipes when the relibc submodule changes (new commit hash), this make the recipes use the old version of the relibc object and don't apply new fixes or improvements.
The proposal is to trigger a fast relink of Rust-written recipes (ideally only the relibc object) and clean + rebuild C/C++ written recipes when the relibc submodule changes the pinned commit hash.https://gitlab.redox-os.org/redox-os/cookbook/-/issues/196Build shared objects in some recipes2024-03-11T14:19:57ZRibbonBuild shared objects in some recipesTo enforce our [package size policy](https://gitlab.redox-os.org/redox-os/cookbook#library-linking) we need to make the bigger libraries build shared objects for dynamic linking.
(If you find other dependencies bigger than 20MB, comment...To enforce our [package size policy](https://gitlab.redox-os.org/redox-os/cookbook#library-linking) we need to make the bigger libraries build shared objects for dynamic linking.
(If you find other dependencies bigger than 20MB, comment on this issue)
- [ ] llvm - Most big dependency
- [ ] ffmpeg6
- [ ] gstreamer
- [ ] boosthttps://gitlab.redox-os.org/redox-os/cookbook/-/issues/195Show the current commit hash of the recipe source when invoking the make targets2024-01-14T20:10:41ZRibbonShow the current commit hash of the recipe source when invoking the make targetsIt will show the current commit hash on the log to help the troubleshooting.It will show the current commit hash on the log to help the troubleshooting.https://gitlab.redox-os.org/redox-os/cookbook/-/issues/194Dynamic link relibc2024-01-13T17:41:29ZRibbonDynamic link relibcThe dynamic linking of relibc will avoid recompilation of recipes when new relibc changes are merged, what is blocking it is that our dynamic linking implementation has unfixed bugs.
### Current Behavior
You need to run these commands ...The dynamic linking of relibc will avoid recompilation of recipes when new relibc changes are merged, what is blocking it is that our dynamic linking implementation has unfixed bugs.
### Current Behavior
You need to run these commands to update relibc, all recipes and the image:
```sh
make pull
touch relibc
make prefix clean all
```
### Proposed Behavior
With a dynamic linking all recipes will use the `relibc` recipe, thus we reduce the relibc updating to one command:
```sh
make pull f.relibc r.relibc image
```
### Implementation
The relibc recipe will be forced to all recipes using the build system source code or the `[package]` section?
Currently the `[package]` seems to be useless.https://gitlab.redox-os.org/redox-os/cookbook/-/issues/191Implement the meta-package2023-12-04T18:53:40ZRibbonImplement the meta-packageA meta-package is a zero-config recipe or package that build or install other recipes or packages, like Debian.
The source-based method require a new template to allow the lack of the `script =` field in the `custom` template, it can be...A meta-package is a zero-config recipe or package that build or install other recipes or packages, like Debian.
The source-based method require a new template to allow the lack of the `script =` field in the `custom` template, it can be called `meta`.
### Examples
- Source-based meta-package - Trigger the building of other recipes and don't build itself.
```toml
[build]
template = "meta"
dependencies = [
"recipe1",
"recipe2",
]
```
- Binary-based meta-package - A section for the meta-package will be added inside of the filesystem configuration with the packages included, the installer will download them from the CI server and install on the filesystem.
```toml
[meta.package-name]
recipe1 = "binary"
recipe2 = "binary"
```https://gitlab.redox-os.org/redox-os/cookbook/-/issues/190Implement the "zip" and "any" data types2023-12-04T18:46:16ZRibbonImplement the "zip" and "any" data typesCurrently the Cookbook support the `tar` and `git` data types in the `[source]` section.
### Proposal
- The `zip` data type will download and extract ZIP archives (could use the `unzip` tool), it's needed by some game data files.
- The...Currently the Cookbook support the `tar` and `git` data types in the `[source]` section.
### Proposal
- The `zip` data type will download and extract ZIP archives (could use the `unzip` tool), it's needed by some game data files.
- The `any` data type will download files of any type and put on the `source` directory, it's needed by programs written in bytecode-based languages like Java.
### Examples
- `any`
```toml
[source]
any = "your-file-link"
[build]
template = "custom"
script = """
insert your script here
"""
```
- `zip`
```toml
[source]
zip = "your-zip-link"
[build]
template = "custom"
script = """
insert your script here
"""
```https://gitlab.redox-os.org/redox-os/cookbook/-/issues/189Recipe logs2023-12-31T11:40:26ZRibbonRecipe logsThis issue will hold all logs of [WIP recipes](https://gitlab.redox-os.org/redox-os/cookbook/-/tree/master/recipes/wip?ref_type=heads), doing this any developer can fix the porting errors more quick.
If you fix a recipe error, reply the...This issue will hold all logs of [WIP recipes](https://gitlab.redox-os.org/redox-os/cookbook/-/tree/master/recipes/wip?ref_type=heads), doing this any developer can fix the porting errors more quick.
If you fix a recipe error, reply the comment with "Fixed".https://gitlab.redox-os.org/redox-os/cookbook/-/issues/188orbital recipes fails to build when building desktop-minimal config2023-08-24T18:41:11ZKivimangoorbital recipes fails to build when building desktop-minimal configThe following recipes are fails when i building Redox OS with the desktop-minimal configuration:
* orbutils-orblogin
* orbutils-launcher
* orbutils-background
```sh
error: manifest path `/mnt/redox/cookbook/recipes/orbutils-launcher/ta...The following recipes are fails when i building Redox OS with the desktop-minimal configuration:
* orbutils-orblogin
* orbutils-launcher
* orbutils-background
```sh
error: manifest path `/mnt/redox/cookbook/recipes/orbutils-launcher/target/x86_64-unknown-redox/build/Cargo.toml` is a virtual manifest, but this command requires running against an actual package in this workspace
make: *** [mk/repo.mk:16: build/x86_64/desktop-minimal/repo.tag] Error 101
make: *** [mk/repo.mk:14: build/x86_64/desktop-minimal/repo.tag] Error 2
```
These recipes have the old .sh scripts, they are 2 years old.
In the meantime, the parent orbutils package changed its project layout to use the cargo workspaces.https://gitlab.redox-os.org/redox-os/cookbook/-/issues/183Book: Update advanced build section of the book with all options and combinat...2023-02-28T09:05:13ZRon WilliamsBook: Update advanced build section of the book with all options and combinations.Describe using cached packages and building specific recipes, with all options, including with checking for updates and ignoring updates.Describe using cached packages and building specific recipes, with all options, including with checking for updates and ignoring updates.https://gitlab.redox-os.org/redox-os/cookbook/-/issues/176Only build specific packages from source2023-12-01T09:08:27ZRon WilliamsOnly build specific packages from sourceThis change will allow most packages to be downloaded from the web package archive, while still allowing the user to modify specific packages. The filesystem config, e.g. `desktop.toml`, is the main place where the user chooses what buil...This change will allow most packages to be downloaded from the web package archive, while still allowing the user to modify specific packages. The filesystem config, e.g. `desktop.toml`, is the main place where the user chooses what build behavior they want for a specific package, with the user creating their own filesystem config. Each package will have a spec, e.g. `uutils = "recipe"`, that selects the build behavior. `uutils = {}` will use the default behavior, determined by `make` variables.
### Proposed Behavior
Changes from current behavior:
- If `REPO_BINARY` is 0 or not set, all packages are built from source.
- If `REPO_BINARY` is 1, the new functionality is enabled and packages are downloaded unless otherwise specified in the filesystem config.
### Phase 1 - Allow package spec to specify build from source vs download binary package
- [x] If `REPO_BINARY` is 1, then the build will use downloaded packages as the default.
- [x] In the filesystem config, e.g. `desktop.toml`, if a package has an empty spec, e.g. `uutils = {}`, then a downloaded package will be used when imaging.
- [x] If the spec is "recipe", e.g. `uutils = "recipe"`, the package is built from source according to the recipe. If the recipe fails, it is a fatal error. This is used when a dev wants to build from the git archive or other downloaded source.
- [ ] If the spec is "recipe_no_fetch", the package is built using the recipe, but the `[source]` section is skipped, and the dev must manually clone and update the `recipe/source` dir. If the `recipe/source` dir is missing, it is a fatal error. This is used when a dev is actively developing a package.
### Phase 2 - Add caching of packages based on SHA
- [ ] If new variable `PKG_CACHE` is set to a location, e.g. `build/x86_64/pkg_cache`, and `PKGS_NOT_CHECKED` is NOT set or not 1, then the build will cache packages it downloads from the web archive in the specified dir. It will compare the SHA of cached packages to the web archive and download packages where the SHA does not match.
- [ ] If `PKGS_NOT_CHECKED` is 1, then the build will assume cached packages are up to date, similar to `make image`. If a required package is missing, it is a fatal error. It will also assume packages built from source are up to date, so it will not execute the recipe.
- [ ] If the spec is "pkg_no_fetch", e.g. `uutils = "pkg_no_fetch", then the cached package is used, its SHA is not checked, and if it does not exist, it is a fatal error. This is used for cases where the dev wants to test a specific version of a package.
### Future
- [ ] Instead of `make` variables, settings are specified in the filesystem config.
- [ ] Global setting for the web package archive
- [ ] Global setting for the package archive cache location
- [ ] Global setting for the location of the recipes
- [ ] Individual recipes that are very simple, such as make from a tarball or clone of a Rust program, may be specified in line for a package
- [ ] Individual packages may have a specific web archive or recipe locationhttps://gitlab.redox-os.org/redox-os/cookbook/-/issues/175Support scanning for reverse dependencies2023-02-25T15:19:11ZJacob Lorentzon4ldo2@protonmail.comSupport scanning for reverse dependenciesThere is currently no mechanism for marking reverse-dependencies as dirty if a given package has been updated. This feature is required if initfs were to be rebuilt automatically when an initfs package is updated, as an example.There is currently no mechanism for marking reverse-dependencies as dirty if a given package has been updated. This feature is required if initfs were to be rebuilt automatically when an initfs package is updated, as an example.https://gitlab.redox-os.org/redox-os/cookbook/-/issues/174TOML recipe format conversion status2023-12-23T02:02:43ZRibbonTOML recipe format conversion statusThese recipes have `recipe.sh` files and need to be converted to the current `recipe.toml` format to improve/fix issues on the Cookbook system.
(Recipes using `recipe.toml` files can't use library recipes with `recipe.sh` files with sta...These recipes have `recipe.sh` files and need to be converted to the current `recipe.toml` format to improve/fix issues on the Cookbook system.
(Recipes using `recipe.toml` files can't use library recipes with `recipe.sh` files with static linking).
**Once it's done all script files from the Cookbook can be removed**
Conversion status:
- [ ] atk
- [x] autoconf
- [x] automake
- [x] binutils
- [x] cairo
- [x] cairodemo
- [ ] cmatrix
- [x] cosmic-text
- [x] cpal
- [x] diffutils
- [x] dosbox
- [ ] duktape
- [ ] dynamic-example
- [x] eduke32
- [ ] fal
- [ ] freeciv
- [x] freedoom
- [x] freeglut
- [ ] freepats
- [x] friar
- [ ] fribidi
- [x] game-2048
- [ ] gawk
- [ ] gcc13
- [ ] gdk-pixbuf
- [ ] gears
- [ ] generaluser-gs
- [ ] gigalomania
- [ ] git
- [ ] glium
- [ ] gnu-binutils
- [ ] gnu-grep
- [ ] gnu-make
- [ ] gstreamer
- [x] jansson
- [ ] keyboard-sfx
- [ ] lci
- [ ] libc-bench
- [x] lua54
- [ ] mdp
- [x] mesa-glu
- [ ] mgba
- [ ] miniserve
- [ ] ncdu
- [x] ncurses
- [ ] ncursesw
- [ ] netsurf
- [ ] neverball
- [ ] newlib
- [ ] newlibtest
- [ ] openjazz
- [ ] openttd-opengfx
- [ ] openttd-openmsx
- [ ] openttd-opensfx
- [ ] openttd
- [ ] orbclient
- [ ] orbutils-background
- [ ] orbutils-launcher
- [ ] orbutils-orblogin
- [ ] osdemo
- [ ] pango
- [ ] pastel
- [ ] patch
- [ ] periodictable
- [ ] perl
- [ ] pixelcannon
- [x] pixman
- [x] pkg-config
- [ ] powerline
- [ ] prboom
- [ ] python
- [ ] qemu
- [ ] relibc-tests
- [x] redox-fatfs
- [x] redox-ssh
- [x] rs-nes
- [x] rodioplay
- [ ] rust-cairo-demo
- [ ] rust-cairo
- [ ] rust
- [x] rust64
- [x] rustpython
- [ ] rustual-boy
- [ ] schismtracker
- [ ] scummvm
- [ ] sdl-player
- [ ] sdl2-gears
- [ ] sdl2-ttf
- [ ] sdl-gfx
- [ ] sdl1-image
- [x] sdl1-mixer
- [ ] sdl1-ttf
- [ ] servo
- [ ] shared-mime-info
- [ ] sodium
- [ ] sopwith
- [ ] ssh
- [ ] syobonaction
- [ ] terminfo
- [ ] termplay
- [ ] timidity
- [ ] ttf-hack
- [ ] vice
- [ ] vim
- [ ] vttest
- [ ] vvvvvv
- [ ] webrender
- [ ] wesnoth
- [x] winit