documentation:technical_docs:poudriere
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
documentation:technical_docs:poudriere [2023/10/12 14:21] – [Features matrix comparison] olivier | documentation:technical_docs:poudriere [2024/11/18 19:11] (current) – [Build packages] olivier | ||
---|---|---|---|
Line 43: | Line 43: | ||
Using poudriere from a ZFS is not mandatory but strongly advised. | Using poudriere from a ZFS is not mandatory but strongly advised. | ||
- | - Install poudriere and configure it: < | + | - Install poudriere and configure it: < |
- | echo " | + | echo " |
- | - Create a poudriere jail WITH a GENERIC kernel (by default kernel is not build & installed), here named " | + | - Create a poudriere jail WITH a GENERIC kernel (by default kernel is not build & installed), here named " |
- | - Create a port-tree using " | + | - Create a port-tree using " |
- Generate list of ports to be build & added into the firmware image:< | - Generate list of ports to be build & added into the firmware image:< | ||
cat > ~/ | cat > ~/ | ||
sysutils/ | sysutils/ | ||
- | net/frr9 | + | net/frr10 |
net/bird2 | net/bird2 | ||
net/mpd5 | net/mpd5 | ||
EOF</ | EOF</ | ||
- | - Build the ports (ie: generate binary packages) from the corresponding jail using " | + | - Build the ports (ie: generate binary packages) from the corresponding jail using " |
- Generate your disk image (4Gb total, because 2 systems partitions of 2Gb) using " | - Generate your disk image (4Gb total, because 2 systems partitions of 2Gb) using " | ||
- | poudriere image -t firmware -j router -s 4g -p router-ports | + | sudo poudriere image -t firmware -j router -s 4g -p router_ports |
(...) | (...) | ||
[00:00:15] Creating ESP image | [00:00:15] Creating ESP image | ||
Line 155: | Line 155: | ||
| Building ports using own (outdated) embedded script | NATIVE role of poudriere | Adding ports to image | | | Building ports using own (outdated) embedded script | NATIVE role of poudriere | Adding ports to image | | ||
| System upgrade by changing MBR active mode on system partition | System upgrade by setting " | | System upgrade by changing MBR active mode on system partition | System upgrade by setting " | ||
+ | |||
+ | ===== poudriere-image patches ===== | ||
+ | |||
+ | List of mandatory patches for poudriere in Pull-request review: | ||
+ | * [[https:// | ||
+ | |||
+ | Merged patches: | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
====== Customized poudriere image for BSDRP ====== | ====== Customized poudriere image for BSDRP ====== | ||
Line 174: | Line 188: | ||
Then need other configuration files: | Then need other configuration files: | ||
* BSDRP-pkglist : List of packages to be build and included in the final image | * BSDRP-pkglist : List of packages to be build and included in the final image | ||
- | * A kernel configuration file: I'm using the BSDRP amd64 configuration | + | * A kernel configuration file: I'm using the [[https:// |
* excluded.files: | * excluded.files: | ||
- | * overlaydir/ | + | * [[https:// |
==== poudriere.d/ | ==== poudriere.d/ | ||
Line 212: | Line 226: | ||
The [[https:// | The [[https:// | ||
+ | ==== Packages excluded files ==== | ||
+ | When customizing ports options, some could not be disabled but we could configure pkg to not install some files from packages while extracting them. | ||
+ | |||
+ | The [[https:// | ||
===== Building the jail ===== | ===== Building the jail ===== | ||
Line 219: | Line 237: | ||
The simplest solution is to re-use already existing BSDRP patched source tree: specific kernel configuration files can be installed into these source tree and use after. | The simplest solution is to re-use already existing BSDRP patched source tree: specific kernel configuration files can be installed into these source tree and use after. | ||
- | Start by only patching BSDRP sources (sources and ports) using the [[https:// | + | Start by only patching BSDRP sources (sources and ports) using the [[https:// |
< | < | ||
- | ./make.sh -U | + | make patch-sources |
- | Update ONLY done | + | |
</ | </ | ||
- | There is now 2 sources ready patched: | + | There are now 2 sources ready patched: |
- | * / | + | * obj/FreeBSD (including BSDRP specific kernel configuration file) |
- | * / | + | * obj/ports |
< | < | ||
- | poudriere jail -c -j BSDRPj -b -m src=/ | + | poudriere jail -e poudriere.etc |
</ | </ | ||
Command line details: | Command line details: | ||
Line 237: | Line 253: | ||
* -c: create a jail | * -c: create a jail | ||
* -j: SHORT name for the jail (I can't use BSDRP-amd64-10.3R here because later it will generate a long directory name and long name aren't well supported) | * -j: SHORT name for the jail (I can't use BSDRP-amd64-10.3R here because later it will generate a long directory name and long name aren't well supported) | ||
+ | * -e: Load all configurations files from ./ | ||
* -m src=: Path to the patched source branch we want to use | * -m src=: Path to the patched source branch we want to use | ||
* -K: The kernel configuration file (was copied here during patching BSDRP code tree) | * -K: The kernel configuration file (was copied here during patching BSDRP code tree) | ||
Line 245: | Line 262: | ||
< | < | ||
- | poudriere ports -c -p BSDRPp -m null -M / | + | poudriere ports -e poudriere.etc |
</ | </ | ||
Line 252: | Line 269: | ||
poudriere native role, we just give the jail name and port-tree name to use then the list of packages. | poudriere native role, we just give the jail name and port-tree name to use then the list of packages. | ||
< | < | ||
- | poudriere bulk -j BSDRPj -p BSDRPp -f / | + | poudriere bulk -e poudriere.etc |
</ | </ | ||
documentation/technical_docs/poudriere.1697113275.txt.gz · Last modified: 2023/10/12 14:21 by olivier